Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TabPage.cs
- EncryptedPackage.cs
- XamlGridLengthSerializer.cs
- WindowsButton.cs
- WebReference.cs
- CountAggregationOperator.cs
- HitTestFilterBehavior.cs
- ClientConfigPaths.cs
- DecimalConstantAttribute.cs
- SecurityTokenValidationException.cs
- WebControlToolBoxItem.cs
- ReflectionTypeLoadException.cs
- DoubleIndependentAnimationStorage.cs
- MimePart.cs
- TableRowGroup.cs
- storepermissionattribute.cs
- GreenMethods.cs
- IndentedTextWriter.cs
- UnauthorizedAccessException.cs
- SocketException.cs
- XPathEmptyIterator.cs
- Renderer.cs
- UserNamePasswordValidator.cs
- SemanticResultValue.cs
- EffectiveValueEntry.cs
- Menu.cs
- RulePatternOps.cs
- HostingPreferredMapPath.cs
- SQLRoleProvider.cs
- UnsafePeerToPeerMethods.cs
- DataGridViewColumnCollection.cs
- CompositeFontInfo.cs
- ActivationWorker.cs
- UrlPropertyAttribute.cs
- StructuredType.cs
- RepeatButtonAutomationPeer.cs
- EditorAttribute.cs
- OneOfTypeConst.cs
- Match.cs
- QilGeneratorEnv.cs
- ConfigurationFileMap.cs
- TableParaClient.cs
- EmptyCollection.cs
- AssociationTypeEmitter.cs
- TextCompositionEventArgs.cs
- DbConvert.cs
- Renderer.cs
- CodeLabeledStatement.cs
- BreakRecordTable.cs
- NonBatchDirectoryCompiler.cs
- Identifier.cs
- XsdDateTime.cs
- PolicyException.cs
- XmlSchemaRedefine.cs
- _CacheStreams.cs
- ASCIIEncoding.cs
- UpdatePanelTrigger.cs
- NativeMethods.cs
- TypeResolvingOptionsAttribute.cs
- ListViewEditEventArgs.cs
- wgx_sdk_version.cs
- OleTxTransactionInfo.cs
- DataListItemEventArgs.cs
- MD5.cs
- Logging.cs
- NodeFunctions.cs
- IteratorFilter.cs
- MexTcpBindingElement.cs
- EmptyQuery.cs
- GridToolTip.cs
- CodeSubDirectory.cs
- ParseNumbers.cs
- SqlProcedureAttribute.cs
- CalendarDay.cs
- WmpBitmapEncoder.cs
- SatelliteContractVersionAttribute.cs
- ImageMapEventArgs.cs
- DtrList.cs
- EntityContainer.cs
- XmlElementCollection.cs
- PositiveTimeSpanValidatorAttribute.cs
- AnonymousIdentificationSection.cs
- LabelDesigner.cs
- GetTokenRequest.cs
- SqlIdentifier.cs
- GB18030Encoding.cs
- DataGridViewSortCompareEventArgs.cs
- WCFModelStrings.Designer.cs
- DataGridSortCommandEventArgs.cs
- ActivityInfo.cs
- AsymmetricKeyExchangeDeformatter.cs
- AspNetCacheProfileAttribute.cs
- Win32MouseDevice.cs
- PersonalizationProviderHelper.cs
- MinMaxParagraphWidth.cs
- CertificateManager.cs
- ActivityBindForm.Designer.cs
- FlowLayout.cs
- ByeMessageApril2005.cs
- VBIdentifierTrimConverter.cs