Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / 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. //------------------------------------------------------------------------------ // 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
- ModifierKeysValueSerializer.cs
- COM2FontConverter.cs
- DTCTransactionManager.cs
- ToolStripOverflowButton.cs
- DrawListViewItemEventArgs.cs
- EditorPart.cs
- ProgressBar.cs
- PrivilegeNotHeldException.cs
- CustomDictionarySources.cs
- SQLInt16.cs
- BlurBitmapEffect.cs
- EntityViewGenerationAttribute.cs
- XmlCollation.cs
- ValidationEventArgs.cs
- TabControlEvent.cs
- GPPOINTF.cs
- FormsAuthenticationModule.cs
- Stylesheet.cs
- Timeline.cs
- SqlUDTStorage.cs
- HierarchicalDataTemplate.cs
- validationstate.cs
- ZipIOExtraFieldZip64Element.cs
- MaskInputRejectedEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- UIElement3D.cs
- ToolStripSeparator.cs
- Binding.cs
- EntitySqlException.cs
- PointLight.cs
- Aes.cs
- ResizeGrip.cs
- SmtpClient.cs
- SizeAnimationUsingKeyFrames.cs
- WindowHideOrCloseTracker.cs
- JournalNavigationScope.cs
- MimePart.cs
- WebPartMinimizeVerb.cs
- ParserStreamGeometryContext.cs
- SqlCacheDependencyDatabase.cs
- CompositeScriptReference.cs
- DataGridItemEventArgs.cs
- KeyGesture.cs
- SystemUnicastIPAddressInformation.cs
- WizardPanelChangingEventArgs.cs
- ArrayExtension.cs
- SharedPerformanceCounter.cs
- WinEventHandler.cs
- DrawingContextWalker.cs
- counter.cs
- MouseActionConverter.cs
- DispatcherHookEventArgs.cs
- HttpCookieCollection.cs
- GridEntryCollection.cs
- MetadataArtifactLoaderCompositeFile.cs
- ActivityScheduledRecord.cs
- TreeNodeStyleCollection.cs
- GregorianCalendarHelper.cs
- LayoutEngine.cs
- GetPageNumberCompletedEventArgs.cs
- SecurityTraceRecordHelper.cs
- DbConvert.cs
- ModuleBuilder.cs
- LogExtent.cs
- MessageSecurityException.cs
- ProgressBarBrushConverter.cs
- LocatorBase.cs
- OutputCache.cs
- ReadOnlyCollectionBase.cs
- SoapServerMessage.cs
- SchemaImporter.cs
- DataSourceSelectArguments.cs
- SecurityContext.cs
- AnnotationDocumentPaginator.cs
- ManualResetEvent.cs
- InfoCardAsymmetricCrypto.cs
- EllipseGeometry.cs
- Rule.cs
- HttpTransportElement.cs
- Attributes.cs
- XmlEventCache.cs
- XmlConverter.cs
- SafeProcessHandle.cs
- MILUtilities.cs
- FixedSOMTableRow.cs
- DropSource.cs
- WindowsFormsHelpers.cs
- CustomCategoryAttribute.cs
- SimpleWorkerRequest.cs
- DrawingGroupDrawingContext.cs
- InfocardChannelParameter.cs
- SecurityVerifiedMessage.cs
- TraceContextRecord.cs
- ZeroOpNode.cs
- RegexCode.cs
- KerberosTicketHashIdentifierClause.cs
- dsa.cs
- FreezableDefaultValueFactory.cs
- CustomAttributeBuilder.cs
- CacheAxisQuery.cs