Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / GenericEnumerator.cs / 1305600 / 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
- DataGridViewDataErrorEventArgs.cs
- CapabilitiesState.cs
- X509Utils.cs
- XmlTypeAttribute.cs
- InvokeGenerator.cs
- FilterQuery.cs
- SqlGatherConsumedAliases.cs
- TreeSet.cs
- StringExpressionSet.cs
- GraphicsPath.cs
- AccessedThroughPropertyAttribute.cs
- DataSourceSelectArguments.cs
- SoapFault.cs
- SecurityIdentifierConverter.cs
- FormViewModeEventArgs.cs
- SeekableReadStream.cs
- ImageSourceValueSerializer.cs
- ConfigurationProperty.cs
- URLMembershipCondition.cs
- VirtualPath.cs
- SQLDouble.cs
- ArrayList.cs
- BasicHttpSecurityElement.cs
- _NestedMultipleAsyncResult.cs
- GenericTypeParameterBuilder.cs
- NativeMethods.cs
- BufferedGraphicsManager.cs
- PublisherMembershipCondition.cs
- SizeAnimation.cs
- ProcessModule.cs
- TagPrefixInfo.cs
- Point3DCollectionValueSerializer.cs
- ECDiffieHellmanCng.cs
- AccessDataSourceView.cs
- SqlEnums.cs
- MinimizableAttributeTypeConverter.cs
- Wrapper.cs
- XmlSchemaElement.cs
- SecurityTokenProviderContainer.cs
- RegistryPermission.cs
- IndexedString.cs
- ParameterDataSourceExpression.cs
- SerializationFieldInfo.cs
- oledbmetadatacolumnnames.cs
- XmlSchemaSet.cs
- NativeMethods.cs
- GlobalAllocSafeHandle.cs
- QueryException.cs
- DesignerForm.cs
- ColorDialog.cs
- CodeMemberEvent.cs
- ToolBarButtonClickEvent.cs
- LineServicesRun.cs
- TextRangeProviderWrapper.cs
- XamlStyleSerializer.cs
- WeakReadOnlyCollection.cs
- CryptoApi.cs
- XmlQualifiedName.cs
- ListParagraph.cs
- IxmlLineInfo.cs
- DataGridViewColumnTypeEditor.cs
- SecureEnvironment.cs
- InputLanguageManager.cs
- DataContext.cs
- XmlChildNodes.cs
- UdpMessageProperty.cs
- Transform3DGroup.cs
- CodeEventReferenceExpression.cs
- DiscoveryDocumentReference.cs
- WindowsButton.cs
- InkCanvasAutomationPeer.cs
- XmlObjectSerializerWriteContextComplex.cs
- InvokeMethodActivity.cs
- ShellProvider.cs
- DataGridViewTextBoxCell.cs
- StringFreezingAttribute.cs
- Substitution.cs
- RedirectionProxy.cs
- ConfigUtil.cs
- BindingExpressionBase.cs
- CachedBitmap.cs
- ChildDocumentBlock.cs
- ObjectAnimationUsingKeyFrames.cs
- ContractMethodParameterInfo.cs
- ImageSource.cs
- DrawingAttributeSerializer.cs
- FullTextBreakpoint.cs
- TransformerInfo.cs
- TreeNode.cs
- DocumentReference.cs
- ImageDrawing.cs
- AccessKeyManager.cs
- DataPagerField.cs
- TCPListener.cs
- ObjectTypeMapping.cs
- TextCompositionManager.cs
- WebPartsPersonalizationAuthorization.cs
- JoinTreeSlot.cs
- ListViewSelectEventArgs.cs
- BitmapData.cs