Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- XsdBuilder.cs
- XhtmlBasicLinkAdapter.cs
- AdPostCacheSubstitution.cs
- SchemeSettingElement.cs
- SchemaCollectionCompiler.cs
- IProvider.cs
- AuthenticationException.cs
- HtmlAnchor.cs
- GZipStream.cs
- Constants.cs
- SoapCommonClasses.cs
- RightsManagementPermission.cs
- ListViewItemMouseHoverEvent.cs
- ByteArrayHelperWithString.cs
- JsonQNameDataContract.cs
- VoiceInfo.cs
- JavaScriptSerializer.cs
- OleServicesContext.cs
- OracleRowUpdatingEventArgs.cs
- OletxCommittableTransaction.cs
- NameValueFileSectionHandler.cs
- HtmlImage.cs
- XmlAttributeAttribute.cs
- StateMachineExecutionState.cs
- HttpsChannelFactory.cs
- Column.cs
- StickyNoteAnnotations.cs
- GlobalizationSection.cs
- HttpCapabilitiesSectionHandler.cs
- Bidi.cs
- CompositeDataBoundControl.cs
- RuleSettingsCollection.cs
- GroupDescription.cs
- FrameworkContentElement.cs
- ManipulationCompletedEventArgs.cs
- RelatedPropertyManager.cs
- DaylightTime.cs
- CommentEmitter.cs
- BufferedConnection.cs
- WorkflowRuntimeElement.cs
- DataRelationPropertyDescriptor.cs
- InfoCardProofToken.cs
- Condition.cs
- DateTimePicker.cs
- ForwardPositionQuery.cs
- UnmanagedMemoryStreamWrapper.cs
- DataObjectAttribute.cs
- GraphicsContext.cs
- unsafeIndexingFilterStream.cs
- ColumnMapCopier.cs
- XmlDeclaration.cs
- MethodBuilder.cs
- ClonableStack.cs
- WinOEToolBoxItem.cs
- DataContractSerializerSection.cs
- CapabilitiesSection.cs
- ManagedWndProcTracker.cs
- NetworkAddressChange.cs
- RulePatternOps.cs
- DataPagerFieldItem.cs
- ApplicationManager.cs
- ModuleBuilderData.cs
- PackagePartCollection.cs
- SqlConnectionHelper.cs
- DelegatingConfigHost.cs
- OleDbDataAdapter.cs
- Misc.cs
- TextBox.cs
- WeakEventManager.cs
- LifetimeServices.cs
- AddInActivator.cs
- EdmItemCollection.cs
- CommandBinding.cs
- ReflectionUtil.cs
- AuthenticationModuleElement.cs
- MemberBinding.cs
- FilteredReadOnlyMetadataCollection.cs
- RegexCapture.cs
- ImageIndexEditor.cs
- ListViewDeletedEventArgs.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DataGridViewLinkColumn.cs
- PathGradientBrush.cs
- ManipulationPivot.cs
- SecurityMode.cs
- FreezableDefaultValueFactory.cs
- Mutex.cs
- GridPatternIdentifiers.cs
- EmbeddedObject.cs
- ChannelManager.cs
- GrammarBuilderBase.cs
- ScalarOps.cs
- Viewport3DVisual.cs
- GridViewPageEventArgs.cs
- Int32RectValueSerializer.cs
- Decimal.cs
- ResourcePermissionBaseEntry.cs
- EventDriven.cs
- Int16AnimationBase.cs
- FloaterParaClient.cs