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
- SQLInt32Storage.cs
- Vector3DCollectionConverter.cs
- IImplicitResourceProvider.cs
- lengthconverter.cs
- GridViewDeletedEventArgs.cs
- DataSourceUtil.cs
- Selection.cs
- FrameworkRichTextComposition.cs
- WSHttpBinding.cs
- DispatchChannelSink.cs
- QueryStringHandler.cs
- WindowsFormsSectionHandler.cs
- WorkBatch.cs
- XmlParserContext.cs
- ReaderWriterLock.cs
- InputLangChangeRequestEvent.cs
- WS2007HttpBindingCollectionElement.cs
- MobileFormsAuthentication.cs
- HtmlInputImage.cs
- SpecialFolderEnumConverter.cs
- StoreItemCollection.cs
- RelationalExpressions.cs
- CursorConverter.cs
- Rect3D.cs
- IgnoreSection.cs
- SchemaElementDecl.cs
- Bitmap.cs
- CodeNamespaceImportCollection.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- HostedNamedPipeTransportManager.cs
- ScopeCompiler.cs
- MethodBuilderInstantiation.cs
- DesignerCommandSet.cs
- SystemFonts.cs
- BodyGlyph.cs
- FastEncoder.cs
- PointConverter.cs
- SoapExtensionImporter.cs
- Light.cs
- TypeNameConverter.cs
- BulletChrome.cs
- DynamicFilterExpression.cs
- HtmlElement.cs
- Splitter.cs
- GrammarBuilderPhrase.cs
- XsltLibrary.cs
- ControlParameter.cs
- DataGridViewCellStyle.cs
- TemplateBindingExpression.cs
- XmlReflectionMember.cs
- DefaultProxySection.cs
- TextClipboardData.cs
- DataGridClipboardHelper.cs
- IOException.cs
- StylusButtonCollection.cs
- XPathNavigatorKeyComparer.cs
- AssemblyAttributes.cs
- HwndHost.cs
- IList.cs
- CompiledXpathExpr.cs
- WebConfigurationManager.cs
- DataServiceClientException.cs
- StateManagedCollection.cs
- CapabilitiesRule.cs
- MdImport.cs
- Int32.cs
- MethodImplAttribute.cs
- SchemaCollectionPreprocessor.cs
- IListConverters.cs
- TargetControlTypeCache.cs
- PointLightBase.cs
- ControlBindingsCollection.cs
- BooleanExpr.cs
- TabControlCancelEvent.cs
- ProxyElement.cs
- ExceptionRoutedEventArgs.cs
- ListBox.cs
- HitTestWithPointDrawingContextWalker.cs
- ProfileSettings.cs
- DependentList.cs
- SystemEvents.cs
- SelectionRangeConverter.cs
- Compiler.cs
- IdentityHolder.cs
- SRGSCompiler.cs
- LabelAutomationPeer.cs
- TextTreeNode.cs
- ColorConverter.cs
- RegexReplacement.cs
- ContourSegment.cs
- DataGridRowsPresenter.cs
- BaseCodePageEncoding.cs
- FirstMatchCodeGroup.cs
- WindowsTreeView.cs
- PixelFormat.cs
- Int32CAMarshaler.cs
- FormsAuthenticationConfiguration.cs
- CapabilitiesState.cs
- DataServiceSaveChangesEventArgs.cs
- FormsIdentity.cs