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
- HtmlEncodedRawTextWriter.cs
- BitmapPalette.cs
- BitmapMetadataBlob.cs
- MediaPlayerState.cs
- WebResourceUtil.cs
- WebPartConnectionsEventArgs.cs
- TreeIterator.cs
- LZCodec.cs
- LocalizabilityAttribute.cs
- StorageRoot.cs
- CellTreeNodeVisitors.cs
- __Error.cs
- CodeSubDirectory.cs
- AutomationPatternInfo.cs
- SerializableReadOnlyDictionary.cs
- NumericUpDownAcceleration.cs
- ContourSegment.cs
- XmlResolver.cs
- TextServicesHost.cs
- OdbcConnectionStringbuilder.cs
- SoapCodeExporter.cs
- SqlCachedBuffer.cs
- ToolStripGrip.cs
- Delay.cs
- MsmqTransportBindingElement.cs
- FileDialogCustomPlace.cs
- WebBrowserNavigatedEventHandler.cs
- HttpListener.cs
- MimePart.cs
- EntityViewContainer.cs
- RandomNumberGenerator.cs
- StringDictionary.cs
- DataTableMapping.cs
- ProxyAttribute.cs
- AsymmetricSecurityProtocol.cs
- InstanceNotReadyException.cs
- InheritanceAttribute.cs
- MappingSource.cs
- MemberRelationshipService.cs
- ListControl.cs
- DataGridViewColumnCollection.cs
- ConstructorBuilder.cs
- Validator.cs
- DefaultPerformanceCounters.cs
- IPPacketInformation.cs
- DecoderNLS.cs
- FloaterParaClient.cs
- Misc.cs
- ButtonChrome.cs
- HtmlHistory.cs
- GenerateTemporaryTargetAssembly.cs
- HtmlButton.cs
- RuleValidation.cs
- ExtendedProtectionPolicyTypeConverter.cs
- StrokeCollection2.cs
- CommunicationException.cs
- TextDecorationCollection.cs
- ConfigUtil.cs
- RectConverter.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- ContentPropertyAttribute.cs
- WebPartEditorCancelVerb.cs
- StreamReader.cs
- VisualStyleInformation.cs
- CodeTypeDeclaration.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ExponentialEase.cs
- BamlCollectionHolder.cs
- Int32CollectionValueSerializer.cs
- LZCodec.cs
- Boolean.cs
- TreeWalker.cs
- MemberDescriptor.cs
- BitmapData.cs
- FullTextBreakpoint.cs
- GlobalProxySelection.cs
- OdbcConnectionHandle.cs
- ConfigXmlSignificantWhitespace.cs
- IdentityReference.cs
- XmlILIndex.cs
- HttpProfileGroupBase.cs
- DataListItemCollection.cs
- CodeAccessSecurityEngine.cs
- login.cs
- SemanticAnalyzer.cs
- XmlDataCollection.cs
- CommandManager.cs
- ObjectListShowCommandsEventArgs.cs
- _OSSOCK.cs
- NetDataContractSerializer.cs
- ValidateNames.cs
- ControlParameter.cs
- PropertyConverter.cs
- MemoryFailPoint.cs
- PointHitTestResult.cs
- ItemList.cs
- DefaultBindingPropertyAttribute.cs
- FixedSOMLineRanges.cs
- CodeDomConfigurationHandler.cs
- UserControlParser.cs