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
- WmlPhoneCallAdapter.cs
- CancelEventArgs.cs
- FixedSOMTable.cs
- AjaxFrameworkAssemblyAttribute.cs
- IOException.cs
- ProcessThread.cs
- Rotation3D.cs
- WebPartDisplayModeCollection.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- HttpHeaderCollection.cs
- RequestContextBase.cs
- DataControlField.cs
- EncodingStreamWrapper.cs
- DataStreamFromComStream.cs
- TreeNodeSelectionProcessor.cs
- NativeObjectSecurity.cs
- SessionPageStatePersister.cs
- PartitionerStatic.cs
- DataGridLinkButton.cs
- TabPanel.cs
- AnnotationHelper.cs
- MetadataItemEmitter.cs
- DefaultSettingsSection.cs
- SingleStorage.cs
- ConditionChanges.cs
- SystemDiagnosticsSection.cs
- XslAst.cs
- FixedSOMGroup.cs
- ImageListImageEditor.cs
- VariableQuery.cs
- ApplicationFileParser.cs
- AdCreatedEventArgs.cs
- WebEncodingValidatorAttribute.cs
- XmlSchemaSubstitutionGroup.cs
- updatecommandorderer.cs
- ConfigurationFileMap.cs
- WriteStateInfoBase.cs
- ParallelForEach.cs
- RemotingSurrogateSelector.cs
- DataGridColumnHeaderAutomationPeer.cs
- LineSegment.cs
- BindingGraph.cs
- TabItem.cs
- TextTreeTextNode.cs
- SemanticValue.cs
- Perspective.cs
- TreeViewDesigner.cs
- ObjectDataSourceFilteringEventArgs.cs
- PngBitmapEncoder.cs
- SimpleHandlerFactory.cs
- ContextMenu.cs
- DrawToolTipEventArgs.cs
- ModelVisual3D.cs
- RuntimeHelpers.cs
- Bits.cs
- FileAccessException.cs
- ComponentConverter.cs
- WebPartTracker.cs
- KeyConstraint.cs
- TransformGroup.cs
- HandlerFactoryCache.cs
- X509Certificate2.cs
- EditCommandColumn.cs
- InputMethodStateTypeInfo.cs
- ISAPIWorkerRequest.cs
- TdsRecordBufferSetter.cs
- TreeNodeBindingDepthConverter.cs
- TPLETWProvider.cs
- CatalogPartCollection.cs
- HtmlCalendarAdapter.cs
- GridItemProviderWrapper.cs
- RedirectionProxy.cs
- ArgumentDirectionHelper.cs
- FontWeightConverter.cs
- UnsafeNativeMethods.cs
- WorkflowOperationAsyncResult.cs
- XamlPointCollectionSerializer.cs
- RowToFieldTransformer.cs
- BuildProvider.cs
- CompositeTypefaceMetrics.cs
- Certificate.cs
- _BaseOverlappedAsyncResult.cs
- MsmqInputSessionChannelListener.cs
- SessionParameter.cs
- Gdiplus.cs
- codemethodreferenceexpression.cs
- ContractMapping.cs
- ClosableStream.cs
- PaintValueEventArgs.cs
- SqlFacetAttribute.cs
- DataGridViewDataErrorEventArgs.cs
- ExtenderProvidedPropertyAttribute.cs
- BinaryMessageFormatter.cs
- Paragraph.cs
- RubberbandSelector.cs
- safex509handles.cs
- ProtocolsConfigurationHandler.cs
- Rectangle.cs
- MissingSatelliteAssemblyException.cs
- Line.cs