Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / GenericEnumerator.cs / 1305600 / 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
- DataGridGeneralPage.cs
- Registry.cs
- WindowsNonControl.cs
- SmiEventSink_DeferedProcessing.cs
- PolicyLevel.cs
- BrushConverter.cs
- ContextStaticAttribute.cs
- DataKeyArray.cs
- ServiceOperationParameter.cs
- Variable.cs
- ButtonChrome.cs
- RoleGroupCollectionEditor.cs
- DecoderExceptionFallback.cs
- TextTabProperties.cs
- DbExpressionVisitor.cs
- SizeKeyFrameCollection.cs
- METAHEADER.cs
- CodeMemberProperty.cs
- ToolStripManager.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- Privilege.cs
- EnumerableRowCollectionExtensions.cs
- ToolStripDropTargetManager.cs
- FixedSOMFixedBlock.cs
- ToolStripLocationCancelEventArgs.cs
- XmlHierarchicalEnumerable.cs
- GeneralTransformGroup.cs
- __TransparentProxy.cs
- EventLogReader.cs
- NumericUpDownAccelerationCollection.cs
- ValidationEventArgs.cs
- QilTargetType.cs
- CodeCatchClause.cs
- MultipartIdentifier.cs
- DbProviderFactories.cs
- FrameworkElement.cs
- ContextBase.cs
- SemanticResolver.cs
- ISFClipboardData.cs
- ComplexTypeEmitter.cs
- SoapIncludeAttribute.cs
- WindowsToolbarItemAsMenuItem.cs
- RegexFCD.cs
- __ComObject.cs
- BitmapEffectGroup.cs
- LayoutManager.cs
- TypeEnumerableViewSchema.cs
- ScriptReferenceEventArgs.cs
- ComponentCollection.cs
- TabControlCancelEvent.cs
- CapabilitiesRule.cs
- AutoGeneratedField.cs
- DtcInterfaces.cs
- ErrorWebPart.cs
- CodeMemberProperty.cs
- XPathAncestorIterator.cs
- CodeDefaultValueExpression.cs
- DbConnectionFactory.cs
- BuiltInExpr.cs
- Math.cs
- CacheVirtualItemsEvent.cs
- FormsAuthenticationUser.cs
- StickyNoteAnnotations.cs
- DeviceFiltersSection.cs
- VScrollBar.cs
- AdornedElementPlaceholder.cs
- ComPlusThreadInitializer.cs
- Composition.cs
- Properties.cs
- ConfigurationElementProperty.cs
- MembershipSection.cs
- TextTreeTextElementNode.cs
- RecommendedAsConfigurableAttribute.cs
- StoryFragments.cs
- baseshape.cs
- LocalizationComments.cs
- XmlSchemaImporter.cs
- XmlSchemaIdentityConstraint.cs
- DataFormats.cs
- CursorConverter.cs
- securitycriticaldataClass.cs
- FeatureSupport.cs
- WebPartsSection.cs
- Int32KeyFrameCollection.cs
- BindingSourceDesigner.cs
- SqlParameterCollection.cs
- StringPropertyBuilder.cs
- RowBinding.cs
- LongValidator.cs
- BaseAsyncResult.cs
- SurrogateEncoder.cs
- dsa.cs
- XomlSerializationHelpers.cs
- DocComment.cs
- DataGridCommandEventArgs.cs
- HtmlGenericControl.cs
- _ContextAwareResult.cs
- BamlRecordWriter.cs
- SqlDataSourceEnumerator.cs
- CopyOnWriteList.cs