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
- EventHandlerList.cs
- CallbackValidatorAttribute.cs
- CalendarTable.cs
- RuntimeArgumentHandle.cs
- ObjectPropertyMapping.cs
- TableStyle.cs
- WebContext.cs
- TextRange.cs
- TextFormattingConverter.cs
- DecimalAnimationUsingKeyFrames.cs
- Style.cs
- ModelItemDictionaryImpl.cs
- HMACMD5.cs
- SqlResolver.cs
- AutomationEventArgs.cs
- CompositeCollection.cs
- DataConnectionHelper.cs
- ThemeConfigurationDialog.cs
- RewritingSimplifier.cs
- _IPv6Address.cs
- HtmlInputCheckBox.cs
- SecurityElement.cs
- MarshalByRefObject.cs
- XpsFont.cs
- SwitchElementsCollection.cs
- DataGridViewColumnConverter.cs
- DependsOnAttribute.cs
- AutomationPropertyInfo.cs
- RequestTimeoutManager.cs
- TypeBinaryExpression.cs
- CodeValidator.cs
- RSAPKCS1KeyExchangeFormatter.cs
- Configuration.cs
- PassportIdentity.cs
- WorkflowMarkupSerializerMapping.cs
- XmlCollation.cs
- ValidatingReaderNodeData.cs
- SecurityTokenValidationException.cs
- BooleanSwitch.cs
- MachineSettingsSection.cs
- ReflectionTypeLoadException.cs
- FormViewCommandEventArgs.cs
- MouseEvent.cs
- PlainXmlWriter.cs
- WebPartZoneCollection.cs
- DoubleCollectionConverter.cs
- JoinElimination.cs
- SocketAddress.cs
- SessionEndingCancelEventArgs.cs
- RecognizedWordUnit.cs
- rsa.cs
- PropertyMapper.cs
- ConfigurationErrorsException.cs
- ContentAlignmentEditor.cs
- HtmlTableCellCollection.cs
- CollectionViewSource.cs
- TransportChannelFactory.cs
- StackSpiller.Bindings.cs
- MethodBuilder.cs
- SiteMapDataSourceDesigner.cs
- Effect.cs
- CacheModeConverter.cs
- ElementHostPropertyMap.cs
- DbConnectionPoolGroup.cs
- DataObjectAttribute.cs
- ContextProperty.cs
- XmlReader.cs
- DesignerActionPanel.cs
- _HelperAsyncResults.cs
- ClientConfigurationSystem.cs
- ApplyImportsAction.cs
- Mapping.cs
- ToolStripSeparator.cs
- RSAOAEPKeyExchangeDeformatter.cs
- PropertyRecord.cs
- SqlUserDefinedAggregateAttribute.cs
- DecimalMinMaxAggregationOperator.cs
- ZipPackage.cs
- Menu.cs
- AspNetPartialTrustHelpers.cs
- oledbmetadatacollectionnames.cs
- XmlSchemaSimpleContentRestriction.cs
- Int16AnimationBase.cs
- XmlSchemaSimpleTypeRestriction.cs
- BuilderInfo.cs
- PageThemeParser.cs
- XamlFilter.cs
- PageTheme.cs
- SynchronizingStream.cs
- CapabilitiesState.cs
- storepermissionattribute.cs
- DbResourceAllocator.cs
- CultureSpecificStringDictionary.cs
- SelectionListDesigner.cs
- SoapSchemaMember.cs
- CompletionBookmark.cs
- DataGridTableCollection.cs
- JapaneseCalendar.cs
- ConnectionProviderAttribute.cs
- DataServiceExpressionVisitor.cs