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
- Domain.cs
- SynchronizedPool.cs
- ConnectionPoint.cs
- GridItemProviderWrapper.cs
- RegexRunner.cs
- TemplateAction.cs
- QueryOpeningEnumerator.cs
- IHttpResponseInternal.cs
- Request.cs
- ArraySubsetEnumerator.cs
- WsatAdminException.cs
- NetPeerTcpBindingElement.cs
- LayoutTable.cs
- RangeValuePattern.cs
- Ref.cs
- CustomError.cs
- MailSettingsSection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- IDQuery.cs
- XPathItem.cs
- MultiplexingFormatMapping.cs
- EditorPartCollection.cs
- _KerberosClient.cs
- CodeSpit.cs
- TimeZoneNotFoundException.cs
- WebCategoryAttribute.cs
- CounterCreationData.cs
- SetterTriggerConditionValueConverter.cs
- Literal.cs
- DefaultTextStore.cs
- ItemDragEvent.cs
- WebHeaderCollection.cs
- ProxyElement.cs
- DataRowComparer.cs
- LocalizableAttribute.cs
- PolyQuadraticBezierSegment.cs
- NameValuePermission.cs
- MsdtcWrapper.cs
- ImageCollectionEditor.cs
- ResponseStream.cs
- COM2ExtendedTypeConverter.cs
- TablePatternIdentifiers.cs
- RadioButtonDesigner.cs
- RelatedCurrencyManager.cs
- MULTI_QI.cs
- DropShadowBitmapEffect.cs
- DesignParameter.cs
- FontSourceCollection.cs
- ReferentialConstraint.cs
- ScrollData.cs
- WebPartConnectionsConfigureVerb.cs
- EpmSyndicationContentDeSerializer.cs
- PerformanceCounterPermission.cs
- DecimalConverter.cs
- RawStylusInputCustomDataList.cs
- X509CertificateChain.cs
- XMLUtil.cs
- DataKeyArray.cs
- SiteOfOriginPart.cs
- processwaithandle.cs
- ZipIOBlockManager.cs
- MetadataCacheItem.cs
- Msmq4SubqueuePoisonHandler.cs
- EmptyTextWriter.cs
- GenericIdentity.cs
- ProfileBuildProvider.cs
- Interfaces.cs
- BitmapImage.cs
- XPathDocument.cs
- InputMethodStateTypeInfo.cs
- TextReader.cs
- GridViewColumnHeader.cs
- AdornerLayer.cs
- IssuanceLicense.cs
- StateMachine.cs
- LinqDataSourceContextEventArgs.cs
- ContentPlaceHolder.cs
- CalculatedColumn.cs
- NativeMethods.cs
- hresults.cs
- UdpDiscoveryEndpointElement.cs
- PipeSecurity.cs
- TypeSystemProvider.cs
- MetadataSet.cs
- SoapMessage.cs
- DescendantQuery.cs
- ProtocolsConfigurationEntry.cs
- WebCategoryAttribute.cs
- PropertyDescriptorComparer.cs
- XsdValidatingReader.cs
- CompositeActivityTypeDescriptorProvider.cs
- HeaderUtility.cs
- Int64Converter.cs
- MenuItemBinding.cs
- Substitution.cs
- JapaneseCalendar.cs
- ContentTextAutomationPeer.cs
- XmlValueConverter.cs
- Profiler.cs
- DataStorage.cs