Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Shared / MS / Internal / GenericEnumerator.cs / 1 / GenericEnumerator.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: GenericEnumerator.cs //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Windows; using MS.Utility; #if PRESENTATION_CORE using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; #else using SR=System.Windows.SR; using SRID=System.Windows.SRID; #endif namespace MS.Internal { ////// GenericEnumerator /// internal class GenericEnumerator : IEnumerator { #region Delegates internal delegate int GetGenerationIDDelegate(); #endregion #region Constructors private GenericEnumerator() { } internal GenericEnumerator(IList array, GetGenerationIDDelegate getGenerationID) { _array = array; _count = _array.Count; _position = -1; _getGenerationID = getGenerationID; _originalGenerationID = _getGenerationID(); } #endregion #region Private private void VerifyCurrent() { if ( (-1 == _position) || (_position >= _count)) { throw new InvalidOperationException(SR.Get(SRID.Enumerator_VerifyContext)); } } #endregion #region IEnumerator ////// Returns the object at the current location of the key times list. /// Use the strongly typed version instead. /// object IEnumerator.Current { get { VerifyCurrent(); return _current; } } ////// Move to the next value in the key times list /// ///true if succeeded, false if at the end of the list public bool MoveNext() { if (_getGenerationID() != _originalGenerationID) { throw new InvalidOperationException(SR.Get(SRID.Enumerator_CollectionChanged)); } _position++; if (_position >= _count) { _position = _count; return false; } else { Debug.Assert(_position >= 0); _current = _array[_position]; return true; } } ////// Move to the position before the first value in the list. /// public void Reset() { if (_getGenerationID() != _originalGenerationID) { throw new InvalidOperationException(SR.Get(SRID.Enumerator_CollectionChanged)); } else { _position = -1; } } #endregion #region Data private IList _array; private object _current; private int _count; private int _position; private int _originalGenerationID; private GetGenerationIDDelegate _getGenerationID; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Int64AnimationUsingKeyFrames.cs
- XamlFilter.cs
- parserscommon.cs
- EventlogProvider.cs
- XmlCustomFormatter.cs
- AccessText.cs
- XComponentModel.cs
- LongSumAggregationOperator.cs
- MouseEventArgs.cs
- TreeBuilder.cs
- KeyInstance.cs
- IPAddress.cs
- WebPartEditVerb.cs
- ProxyWebPart.cs
- IResourceProvider.cs
- HtmlElementCollection.cs
- ProfileInfo.cs
- ParallelTimeline.cs
- XmlSerializableWriter.cs
- Highlights.cs
- AuthenticationConfig.cs
- DbParameterHelper.cs
- ZoomPercentageConverter.cs
- WindowsGraphics2.cs
- AsyncOperationManager.cs
- COSERVERINFO.cs
- ConfigUtil.cs
- Tag.cs
- ClientOptions.cs
- Claim.cs
- SessionKeyExpiredException.cs
- TreeView.cs
- CollectionViewSource.cs
- MD5Cng.cs
- SecurityTokenProvider.cs
- SmtpTransport.cs
- IntellisenseTextBox.designer.cs
- State.cs
- NotSupportedException.cs
- CustomSignedXml.cs
- DirectionalLight.cs
- SystemDiagnosticsSection.cs
- XmlUnspecifiedAttribute.cs
- GeneralTransform3DGroup.cs
- ExplicitDiscriminatorMap.cs
- SoapCodeExporter.cs
- Point3DAnimation.cs
- TypeExtensions.cs
- BrowserDefinitionCollection.cs
- Mapping.cs
- InfocardExtendedInformationEntry.cs
- NonPrimarySelectionGlyph.cs
- TableLayoutStyle.cs
- ETagAttribute.cs
- TextEditorParagraphs.cs
- Transform.cs
- HttpWebResponse.cs
- ComEventsHelper.cs
- TextEditorDragDrop.cs
- ColumnCollection.cs
- FileLogRecordStream.cs
- WindowsProgressbar.cs
- StrongNameKeyPair.cs
- TextMetrics.cs
- ApplicationGesture.cs
- AxisAngleRotation3D.cs
- ActivityCodeDomSerializer.cs
- DesignOnlyAttribute.cs
- HiddenField.cs
- WindowsIdentity.cs
- BooleanToVisibilityConverter.cs
- cookiecollection.cs
- BadImageFormatException.cs
- CompositeCollection.cs
- XmlAttributeOverrides.cs
- XNodeValidator.cs
- DisplayInformation.cs
- SchemaAttDef.cs
- SpecularMaterial.cs
- RuleInfoComparer.cs
- AccessDataSourceView.cs
- MetadataCacheItem.cs
- SqlDuplicator.cs
- ScrollableControl.cs
- RepeaterItemCollection.cs
- ResXDataNode.cs
- DataGridClipboardHelper.cs
- Validator.cs
- ReflectPropertyDescriptor.cs
- CompilerGeneratedAttribute.cs
- ObjectDataSourceStatusEventArgs.cs
- IISUnsafeMethods.cs
- ApplicationId.cs
- SerializableAttribute.cs
- MemberAccessException.cs
- LineBreak.cs
- PageOrientation.cs
- LoopExpression.cs
- WebConfigurationHost.cs
- TcpPortSharing.cs