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
- _ConnectionGroup.cs
- AvTrace.cs
- CapiNative.cs
- SmtpDigestAuthenticationModule.cs
- ParallelEnumerableWrapper.cs
- Listbox.cs
- log.cs
- XPathAxisIterator.cs
- GridViewRow.cs
- FrameworkContentElement.cs
- WindowsSysHeader.cs
- BooleanProjectedSlot.cs
- DictionaryBase.cs
- Encoding.cs
- TimeEnumHelper.cs
- ToolStripDropDownMenu.cs
- DoubleAnimationUsingKeyFrames.cs
- CommonXSendMessage.cs
- TreeNode.cs
- ServicesUtilities.cs
- ClonableStack.cs
- MarkupCompilePass1.cs
- BatchServiceHost.cs
- ValidationSummary.cs
- ScriptResourceMapping.cs
- ButtonPopupAdapter.cs
- ActivityCodeDomSerializer.cs
- LookupBindingPropertiesAttribute.cs
- DecimalFormatter.cs
- RoutedEventConverter.cs
- EffectiveValueEntry.cs
- ToolStripControlHost.cs
- HiddenFieldPageStatePersister.cs
- FrameworkPropertyMetadata.cs
- ToolStripArrowRenderEventArgs.cs
- BufferedOutputStream.cs
- HttpHandlerActionCollection.cs
- WindowsAltTab.cs
- DataTableCollection.cs
- FontStretch.cs
- EntityProviderFactory.cs
- CaseInsensitiveHashCodeProvider.cs
- ToolBar.cs
- CqlIdentifiers.cs
- DataServiceConfiguration.cs
- VerifyHashRequest.cs
- ControlUtil.cs
- TreeNodeConverter.cs
- IsolatedStorageException.cs
- EdmSchemaAttribute.cs
- sortedlist.cs
- ModuleBuilder.cs
- ConfigXmlCDataSection.cs
- XmlFileEditor.cs
- ArraySortHelper.cs
- Track.cs
- MiniLockedBorderGlyph.cs
- GrammarBuilder.cs
- SafeFileMappingHandle.cs
- SystemIPGlobalProperties.cs
- SqlExpressionNullability.cs
- XmlCDATASection.cs
- HtmlElementCollection.cs
- PersonalizationEntry.cs
- IIS7WorkerRequest.cs
- DataGridViewColumnEventArgs.cs
- XmlSchemaProviderAttribute.cs
- AuditLevel.cs
- MetaColumn.cs
- XmlNodeList.cs
- CssStyleCollection.cs
- ListViewItem.cs
- ErrorEventArgs.cs
- DataGridViewRowPrePaintEventArgs.cs
- FormatterServices.cs
- XamlWrapperReaders.cs
- FrameworkObject.cs
- ReservationCollection.cs
- PointAnimationClockResource.cs
- XmlSchemaExporter.cs
- WhiteSpaceTrimStringConverter.cs
- ConfigurationElementCollection.cs
- Assert.cs
- TypedTableBaseExtensions.cs
- XmlSchemaAttribute.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- AppDomain.cs
- RowBinding.cs
- ProfileEventArgs.cs
- HelpProvider.cs
- ImageList.cs
- Interop.cs
- IResourceProvider.cs
- PathStreamGeometryContext.cs
- SystemWebExtensionsSectionGroup.cs
- WebPartActionVerb.cs
- HttpRequestCacheValidator.cs
- AssemblyUtil.cs
- XmlWhitespace.cs
- WebPartManager.cs