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
- EditorPartChrome.cs
- ListControl.cs
- BindingGroup.cs
- KeyFrames.cs
- ListView.cs
- BulletDecorator.cs
- NavigationProperty.cs
- webbrowsersite.cs
- Models.cs
- ResourcesChangeInfo.cs
- Int64Storage.cs
- CodeDomConfigurationHandler.cs
- CalendarBlackoutDatesCollection.cs
- XmlExtensionFunction.cs
- EncodingTable.cs
- EdmType.cs
- UdpRetransmissionSettings.cs
- ButtonChrome.cs
- ProcessInfo.cs
- XamlNamespaceHelper.cs
- SemaphoreFullException.cs
- TableSectionStyle.cs
- BinaryParser.cs
- FormatVersion.cs
- IteratorFilter.cs
- TreeNode.cs
- ListBoxItem.cs
- ElementInit.cs
- LocalizationParserHooks.cs
- RecipientInfo.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- MessageEnumerator.cs
- MimeMultiPart.cs
- StreamGeometryContext.cs
- Point4DConverter.cs
- BaseResourcesBuildProvider.cs
- XmlSerializerSection.cs
- ServiceOperationParameter.cs
- DataGridViewSelectedColumnCollection.cs
- Utils.cs
- ReadOnlyNameValueCollection.cs
- TableCell.cs
- LogicalTreeHelper.cs
- LoginView.cs
- DrawListViewSubItemEventArgs.cs
- InstallerTypeAttribute.cs
- DataPagerCommandEventArgs.cs
- MSAAWinEventWrap.cs
- Context.cs
- CanonicalFormWriter.cs
- BooleanFunctions.cs
- SchemaAttDef.cs
- SimpleHandlerFactory.cs
- CqlIdentifiers.cs
- WindowsClientCredential.cs
- AppLevelCompilationSectionCache.cs
- DataChangedEventManager.cs
- NonceCache.cs
- WSDualHttpBinding.cs
- Utilities.cs
- CompositionAdorner.cs
- MsmqInputSessionChannelListener.cs
- DrawingServices.cs
- TriggerBase.cs
- Coordinator.cs
- QuadraticBezierSegment.cs
- KeyNotFoundException.cs
- GlyphElement.cs
- OdbcException.cs
- StateChangeEvent.cs
- DiscreteKeyFrames.cs
- BufferModeSettings.cs
- RightsManagementInformation.cs
- SettingsPropertyIsReadOnlyException.cs
- DispatchChannelSink.cs
- AssertSection.cs
- MemberMemberBinding.cs
- ByteStreamGeometryContext.cs
- Imaging.cs
- GridViewCellAutomationPeer.cs
- DataColumnCollection.cs
- ProcessHost.cs
- SafeFindHandle.cs
- FileFormatException.cs
- InternalSendMessage.cs
- EraserBehavior.cs
- TextRunProperties.cs
- DBProviderConfigurationHandler.cs
- FacetValueContainer.cs
- HtmlEncodedRawTextWriter.cs
- RectangleHotSpot.cs
- AppSettingsReader.cs
- XmlSchemaComplexContentRestriction.cs
- Propagator.cs
- Publisher.cs
- DesignTimeHTMLTextWriter.cs
- XmlEventCache.cs
- SystemPens.cs
- ButtonStandardAdapter.cs
- StringBuilder.cs