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
- IPipelineRuntime.cs
- HostProtectionPermission.cs
- PageCodeDomTreeGenerator.cs
- SignatureDescription.cs
- AmbientLight.cs
- DataGridSortCommandEventArgs.cs
- SqlFacetAttribute.cs
- HandleRef.cs
- ToolboxCategory.cs
- XmlAggregates.cs
- LayeredChannelListener.cs
- SqlInternalConnectionTds.cs
- TableLayoutStyle.cs
- Operators.cs
- CombinedGeometry.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- CultureTableRecord.cs
- StrokeCollection.cs
- UpdateException.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ReverseInheritProperty.cs
- TreeWalker.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- EpmContentDeSerializerBase.cs
- WebDisplayNameAttribute.cs
- CellPartitioner.cs
- ColorConvertedBitmap.cs
- NamespaceCollection.cs
- DiffuseMaterial.cs
- DispatcherHooks.cs
- TextRunTypographyProperties.cs
- PublisherMembershipCondition.cs
- TextContainerChangedEventArgs.cs
- IFlowDocumentViewer.cs
- ListViewInsertEventArgs.cs
- QfeChecker.cs
- XmlExtensionFunction.cs
- PrimitiveSchema.cs
- SecurityRuntime.cs
- MulticastDelegate.cs
- DataServiceConfiguration.cs
- Figure.cs
- RelOps.cs
- TemplateControl.cs
- ComponentSerializationService.cs
- PrinterSettings.cs
- QuadraticBezierSegment.cs
- ViewCellSlot.cs
- _CacheStreams.cs
- TrustManager.cs
- GroupBoxAutomationPeer.cs
- CellPartitioner.cs
- GenericsInstances.cs
- GridErrorDlg.cs
- FullTextLine.cs
- StylusPlugin.cs
- XmlWrappingWriter.cs
- columnmapfactory.cs
- GridViewSortEventArgs.cs
- DbConnectionPoolGroup.cs
- PropertyFilterAttribute.cs
- SourceFileInfo.cs
- RelAssertionDirectKeyIdentifierClause.cs
- RequiredAttributeAttribute.cs
- CertificateManager.cs
- DesignOnlyAttribute.cs
- CompModSwitches.cs
- FlowDocumentPage.cs
- StructuralType.cs
- FileController.cs
- PathTooLongException.cs
- InteropBitmapSource.cs
- ZoneIdentityPermission.cs
- PackageDigitalSignatureManager.cs
- MethodAccessException.cs
- SourceInterpreter.cs
- StringDictionary.cs
- ExpressionVisitorHelpers.cs
- PreviewPageInfo.cs
- ContainerVisual.cs
- Line.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Substitution.cs
- KeyFrames.cs
- ConfigXmlWhitespace.cs
- Wow64ConfigurationLoader.cs
- XmlReader.cs
- ParentUndoUnit.cs
- CatalogUtil.cs
- SoapReflectionImporter.cs
- BindingContext.cs
- ScrollChrome.cs
- DataControlFieldHeaderCell.cs
- XpsFont.cs
- RegexMatch.cs
- XXXOnTypeBuilderInstantiation.cs
- AttachedPropertyBrowsableAttribute.cs
- CreateUserWizard.cs
- XamlSerializerUtil.cs
- HyperLinkStyle.cs