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
- TemplatePagerField.cs
- BaseAsyncResult.cs
- DataGridViewSelectedCellCollection.cs
- LOSFormatter.cs
- ArgumentValueSerializer.cs
- AxisAngleRotation3D.cs
- TimeStampChecker.cs
- ListViewEditEventArgs.cs
- CompilationUtil.cs
- DocumentPage.cs
- DesignerSerializationVisibilityAttribute.cs
- AnnotationAuthorChangedEventArgs.cs
- DesignTimeDataBinding.cs
- MasterPageBuildProvider.cs
- DrawingBrush.cs
- DesignerDataView.cs
- VerticalAlignConverter.cs
- XmlSchemaSimpleTypeList.cs
- GridViewSortEventArgs.cs
- WebService.cs
- AttributeTableBuilder.cs
- StreamGeometryContext.cs
- URLIdentityPermission.cs
- PanelDesigner.cs
- TemplateControlCodeDomTreeGenerator.cs
- DataSourceHelper.cs
- WebBrowser.cs
- DayRenderEvent.cs
- WebFaultClientMessageInspector.cs
- CaseStatementSlot.cs
- SessionStateModule.cs
- QuerySafeNavigator.cs
- Internal.cs
- Attributes.cs
- DataFormats.cs
- XmlnsPrefixAttribute.cs
- GeneralTransform3DCollection.cs
- EntityKeyElement.cs
- XmlArrayItemAttribute.cs
- Container.cs
- SEHException.cs
- ExecutionScope.cs
- DataBoundControlHelper.cs
- CriticalExceptions.cs
- ResourceAttributes.cs
- RelationshipConverter.cs
- DbgCompiler.cs
- StrokeCollection.cs
- ApplicationActivator.cs
- XsltInput.cs
- EventWaitHandle.cs
- CommandConverter.cs
- NavigationProperty.cs
- PagerSettings.cs
- FormViewDeletedEventArgs.cs
- XslNumber.cs
- CipherData.cs
- LinkTarget.cs
- ProtocolProfile.cs
- EntityDataSourceQueryBuilder.cs
- IntPtr.cs
- BatchParser.cs
- TransactionException.cs
- Activator.cs
- StreamAsIStream.cs
- CompositeDesignerAccessibleObject.cs
- ComponentConverter.cs
- InvalidComObjectException.cs
- TextEditorLists.cs
- BamlMapTable.cs
- WorkflowView.cs
- WebPartCatalogAddVerb.cs
- CompilerError.cs
- SmtpTransport.cs
- BitmapFrame.cs
- ConnectionStringsSection.cs
- WebRequestModuleElementCollection.cs
- MsmqHostedTransportConfiguration.cs
- UIElement3D.cs
- CodeLinePragma.cs
- WebPartConnectionsDisconnectVerb.cs
- XmlSchemaIdentityConstraint.cs
- AsymmetricSignatureFormatter.cs
- InternalBufferManager.cs
- StickyNoteContentControl.cs
- NGCSerializerAsync.cs
- ImageButton.cs
- FileLoadException.cs
- XomlCompilerHelpers.cs
- Annotation.cs
- ReferenceEqualityComparer.cs
- CacheDependency.cs
- ProxyWebPartManager.cs
- Object.cs
- DataControlHelper.cs
- ProxyAttribute.cs
- RequestCacheManager.cs
- RemoteWebConfigurationHostServer.cs
- BinHexEncoder.cs
- DataTableCollection.cs