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
- ToolStripDropDownClosedEventArgs.cs
- RealizationContext.cs
- PlatformNotSupportedException.cs
- EnvironmentPermission.cs
- prompt.cs
- TableLayoutStyle.cs
- LineServicesCallbacks.cs
- InvokePattern.cs
- StringArrayConverter.cs
- Polygon.cs
- TextRangeEdit.cs
- HandlerMappingMemo.cs
- ComponentSerializationService.cs
- StateItem.cs
- DefaultIfEmptyQueryOperator.cs
- RSAPKCS1KeyExchangeFormatter.cs
- X509CertificateClaimSet.cs
- ClrProviderManifest.cs
- DynamicEntity.cs
- ConstraintCollection.cs
- LoadGrammarCompletedEventArgs.cs
- DispatcherObject.cs
- Rss20FeedFormatter.cs
- MemoryMappedViewAccessor.cs
- CommentGlyph.cs
- BasicViewGenerator.cs
- DataGridViewRow.cs
- RoleServiceManager.cs
- ProviderIncompatibleException.cs
- TextTreeExtractElementUndoUnit.cs
- HtmlControlPersistable.cs
- BindingMAnagerBase.cs
- MsmqIntegrationBindingElement.cs
- TextEditorDragDrop.cs
- Operator.cs
- HtmlInputRadioButton.cs
- DSACryptoServiceProvider.cs
- InvariantComparer.cs
- DataGridAutomationPeer.cs
- unsafenativemethodstextservices.cs
- MultipartContentParser.cs
- ToolStripSplitButton.cs
- DeflateStreamAsyncResult.cs
- MaterialGroup.cs
- Compiler.cs
- MonitoringDescriptionAttribute.cs
- TogglePattern.cs
- JsonStringDataContract.cs
- CqlLexer.cs
- Roles.cs
- RegexCode.cs
- AppDomain.cs
- TextPointerBase.cs
- SmtpSection.cs
- MemberAccessException.cs
- MissingFieldException.cs
- BitmapDecoder.cs
- ConfigXmlSignificantWhitespace.cs
- Literal.cs
- ServiceDesigner.cs
- XmlUtil.cs
- ActiveXSerializer.cs
- InvalidComObjectException.cs
- CodeAttachEventStatement.cs
- CurrentChangingEventManager.cs
- ColorConverter.cs
- ArgumentException.cs
- BufferedGraphicsContext.cs
- BaseInfoTable.cs
- PasswordRecovery.cs
- JoinTreeNode.cs
- SymmetricCryptoHandle.cs
- RolePrincipal.cs
- PermissionRequestEvidence.cs
- DiscoveryInnerClientManaged11.cs
- DialogResultConverter.cs
- HttpRequest.cs
- ObjectDataSourceFilteringEventArgs.cs
- SafeSecurityHandles.cs
- DataServiceResponse.cs
- ComponentRenameEvent.cs
- DefaultBinder.cs
- SendMailErrorEventArgs.cs
- StandardBindingOptionalReliableSessionElement.cs
- GroupQuery.cs
- CurrentChangingEventManager.cs
- ConditionChanges.cs
- DataGridViewColumnEventArgs.cs
- SqlConnectionHelper.cs
- UniqueID.cs
- XmlNamespaceDeclarationsAttribute.cs
- processwaithandle.cs
- TransformerConfigurationWizardBase.cs
- SqlClientPermission.cs
- BamlBinaryReader.cs
- TCPListener.cs
- SqlDataSourceView.cs
- IndependentlyAnimatedPropertyMetadata.cs
- SpeakCompletedEventArgs.cs
- MethodBuilder.cs