Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // 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
- TraceListeners.cs
- Vector3DCollection.cs
- UnhandledExceptionEventArgs.cs
- EntityDataSourceColumn.cs
- CriticalHandle.cs
- TextParagraphView.cs
- ServiceHttpHandlerFactory.cs
- MeshGeometry3D.cs
- ScriptReference.cs
- StandardToolWindows.cs
- CompoundFileReference.cs
- CompositeDispatchFormatter.cs
- InvalidEnumArgumentException.cs
- SettingsPropertyIsReadOnlyException.cs
- AsyncPostBackTrigger.cs
- HandlerBase.cs
- PropertyInformationCollection.cs
- httpstaticobjectscollection.cs
- XMLSchema.cs
- FlowDocumentScrollViewer.cs
- ConcurrentStack.cs
- CodeDOMProvider.cs
- SmtpClient.cs
- CheckBoxRenderer.cs
- VisualState.cs
- Ref.cs
- BitmapEffectGeneralTransform.cs
- LongValidatorAttribute.cs
- XPathSelectionIterator.cs
- DataSetMappper.cs
- SqlDelegatedTransaction.cs
- ReliableMessagingVersionConverter.cs
- SimpleType.cs
- KerberosRequestorSecurityToken.cs
- CachedBitmap.cs
- AppSettingsExpressionBuilder.cs
- XPathDescendantIterator.cs
- UmAlQuraCalendar.cs
- UxThemeWrapper.cs
- DependencyPropertyHelper.cs
- TextServicesContext.cs
- ActiveXSite.cs
- MetafileHeader.cs
- XamlDesignerSerializationManager.cs
- TableCell.cs
- CollectionChangeEventArgs.cs
- PreviewPageInfo.cs
- CodeComment.cs
- TreeNodeStyleCollection.cs
- SQLDecimal.cs
- LinkClickEvent.cs
- SmtpNegotiateAuthenticationModule.cs
- SharedUtils.cs
- EditorZone.cs
- NetworkInterface.cs
- GridEntryCollection.cs
- ListBoxAutomationPeer.cs
- EnvelopedPkcs7.cs
- ColorTransformHelper.cs
- Padding.cs
- CompositeScriptReferenceEventArgs.cs
- SelectionItemProviderWrapper.cs
- Frame.cs
- WindowsUpDown.cs
- ErrorFormatterPage.cs
- XPathAncestorIterator.cs
- TextRangeEditTables.cs
- TextModifierScope.cs
- WebConvert.cs
- HitTestParameters.cs
- InputGestureCollection.cs
- CancelEventArgs.cs
- SessionStateItemCollection.cs
- RowUpdatedEventArgs.cs
- FilterRepeater.cs
- SafePEFileHandle.cs
- FixedSOMPage.cs
- ManagedIStream.cs
- URIFormatException.cs
- HWStack.cs
- FrameAutomationPeer.cs
- PasswordPropertyTextAttribute.cs
- HttpContext.cs
- DataGridViewBand.cs
- ConcurrentDictionary.cs
- ObjectDataSourceMethodEventArgs.cs
- ComNativeDescriptor.cs
- Mapping.cs
- ListViewSelectEventArgs.cs
- PathFigureCollectionConverter.cs
- MutexSecurity.cs
- DocumentGridPage.cs
- MLangCodePageEncoding.cs
- ScopelessEnumAttribute.cs
- CollectionViewGroupRoot.cs
- EntityDataSourceWrapper.cs
- COAUTHINFO.cs
- ConnectionsZone.cs
- ServiceOperationHelpers.cs
- AnimatedTypeHelpers.cs