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
- IItemProperties.cs
- StateManagedCollection.cs
- SafePEFileHandle.cs
- Model3DCollection.cs
- ObjectTag.cs
- MethodAccessException.cs
- TypeUtil.cs
- TabPanel.cs
- DateBoldEvent.cs
- ContextMenuStripActionList.cs
- RegexBoyerMoore.cs
- HtmlInputFile.cs
- SqlFunctionAttribute.cs
- WSSecurityPolicy12.cs
- SortedDictionary.cs
- WebFormDesignerActionService.cs
- OpenFileDialog.cs
- ImageSourceConverter.cs
- LayoutTableCell.cs
- ImageInfo.cs
- ConfigXmlComment.cs
- LocationReferenceValue.cs
- X509IssuerSerialKeyIdentifierClause.cs
- SQLUtility.cs
- ListenerElementsCollection.cs
- DelegateHelpers.Generated.cs
- XmlSerializerAssemblyAttribute.cs
- ContractCodeDomInfo.cs
- remotingproxy.cs
- ValueTypeFixupInfo.cs
- DataGridViewSelectedCellCollection.cs
- AutomationAttributeInfo.cs
- DebugManager.cs
- TypeTypeConverter.cs
- InternalBufferOverflowException.cs
- PasswordBoxAutomationPeer.cs
- DataObject.cs
- UniformGrid.cs
- TableLayoutCellPaintEventArgs.cs
- RadialGradientBrush.cs
- sqlstateclientmanager.cs
- XPathExpr.cs
- DataGridRowAutomationPeer.cs
- JumpPath.cs
- IdentityReference.cs
- CodeGenerator.cs
- RenderData.cs
- WorkflowMarkupSerializationProvider.cs
- TransactionFlowOption.cs
- SQLSingle.cs
- MemoryStream.cs
- ScopelessEnumAttribute.cs
- SqlUtil.cs
- ListControl.cs
- SigningCredentials.cs
- DataColumnCollection.cs
- HttpClientCertificate.cs
- IndicCharClassifier.cs
- MethodMessage.cs
- InvalidAsynchronousStateException.cs
- BaseDataList.cs
- CategoryNameCollection.cs
- StaticDataManager.cs
- ParagraphVisual.cs
- _BasicClient.cs
- SaveWorkflowAsyncResult.cs
- SHA1.cs
- StatusStrip.cs
- SID.cs
- LassoHelper.cs
- InternalControlCollection.cs
- AssociationType.cs
- ThemeableAttribute.cs
- ISCIIEncoding.cs
- Int32Collection.cs
- EdmType.cs
- EditorPartChrome.cs
- CodePageUtils.cs
- Panel.cs
- ActiveXHost.cs
- ByteAnimationUsingKeyFrames.cs
- DPTypeDescriptorContext.cs
- TextSelection.cs
- WeakHashtable.cs
- ToolboxBitmapAttribute.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- RowParagraph.cs
- SqlCommandAsyncResult.cs
- StringConcat.cs
- XmlDictionaryString.cs
- PngBitmapDecoder.cs
- FilteredAttributeCollection.cs
- ProfilePropertySettings.cs
- IEnumerable.cs
- TextBox.cs
- IPHostEntry.cs
- Wildcard.cs
- CompositeCollectionView.cs
- SchemaTableColumn.cs
- ThicknessAnimationBase.cs