Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ProcessModuleCollection.cs
- ObjectTag.cs
- WebServiceParameterData.cs
- XPathScanner.cs
- ServiceSettingsResponseInfo.cs
- ObsoleteAttribute.cs
- XmlNavigatorStack.cs
- LinearGradientBrush.cs
- ColumnResizeUndoUnit.cs
- HierarchicalDataBoundControlAdapter.cs
- WebPartEditorCancelVerb.cs
- NavigationHelper.cs
- SchemaImporterExtension.cs
- KeyGestureValueSerializer.cs
- DataSourceView.cs
- ServiceHttpHandlerFactory.cs
- ChildTable.cs
- BamlTreeUpdater.cs
- WsatProxy.cs
- RichTextBox.cs
- StoreItemCollection.Loader.cs
- WebPartCancelEventArgs.cs
- PageClientProxyGenerator.cs
- CommandManager.cs
- Ticks.cs
- Pair.cs
- HealthMonitoringSectionHelper.cs
- PassportAuthentication.cs
- ObjectStateManager.cs
- Context.cs
- BuildResult.cs
- RefreshEventArgs.cs
- DPCustomTypeDescriptor.cs
- Grid.cs
- EntityDataSource.cs
- PackageStore.cs
- X509SecurityToken.cs
- TextEditorTables.cs
- CollectionChangeEventArgs.cs
- FlowLayoutSettings.cs
- PromptStyle.cs
- RenderingBiasValidation.cs
- ClientProxyGenerator.cs
- FloatAverageAggregationOperator.cs
- TemplatePartAttribute.cs
- QuestionEventArgs.cs
- CompModSwitches.cs
- OledbConnectionStringbuilder.cs
- InstancePersistence.cs
- EntityContainer.cs
- NumberFormatInfo.cs
- XsdBuilder.cs
- NamespaceMapping.cs
- DefaultParameterValueAttribute.cs
- SpeechDetectedEventArgs.cs
- ColorTransformHelper.cs
- _LocalDataStoreMgr.cs
- GroupBox.cs
- CheckBoxField.cs
- MiniLockedBorderGlyph.cs
- DataGridViewCellPaintingEventArgs.cs
- MenuCommandService.cs
- LineServicesRun.cs
- StreamWithDictionary.cs
- TemplateControl.cs
- ResXResourceReader.cs
- QilXmlWriter.cs
- ClipboardData.cs
- AttributeEmitter.cs
- LiteralTextParser.cs
- IdentityValidationException.cs
- Hash.cs
- ArraySegment.cs
- ExceptionHandlers.cs
- PointAnimationClockResource.cs
- DataGridViewCell.cs
- HtmlShim.cs
- ClonableStack.cs
- PersonalizationEntry.cs
- TranslateTransform3D.cs
- BitmapEffectInputData.cs
- SwitchLevelAttribute.cs
- AuthenticationModulesSection.cs
- EncryptedKey.cs
- ConfigXmlCDataSection.cs
- Configuration.cs
- DocumentAutomationPeer.cs
- TreeBuilderBamlTranslator.cs
- NumberFormatInfo.cs
- DSGeneratorProblem.cs
- Odbc32.cs
- PeerPresenceInfo.cs
- EdgeModeValidation.cs
- AnimationTimeline.cs
- TextElementCollectionHelper.cs
- DataGridViewBand.cs
- TransportSecurityProtocol.cs
- MediaTimeline.cs
- TdsValueSetter.cs
- SerializerDescriptor.cs