Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScrollViewer.cs
- HandleCollector.cs
- LinkConverter.cs
- PropertyMetadata.cs
- Merger.cs
- ALinqExpressionVisitor.cs
- FixedPosition.cs
- metadatamappinghashervisitor.cs
- MediaElementAutomationPeer.cs
- DateTimeUtil.cs
- NamespaceCollection.cs
- TypeDescriptionProviderAttribute.cs
- InputQueue.cs
- WindowsAltTab.cs
- LineBreakRecord.cs
- HeaderPanel.cs
- ScriptManagerProxy.cs
- WindowsAuthenticationModule.cs
- XamlFilter.cs
- ContextStaticAttribute.cs
- ReflectTypeDescriptionProvider.cs
- SafeSystemMetrics.cs
- CollectionTraceRecord.cs
- BindingContext.cs
- DataStreams.cs
- XmlSchemaAttribute.cs
- WpfGeneratedKnownTypes.cs
- NTAccount.cs
- TableCellCollection.cs
- ViewCellRelation.cs
- ColumnResult.cs
- ThrowHelper.cs
- Literal.cs
- SecurityKeyIdentifierClause.cs
- BoundingRectTracker.cs
- SessionStateItemCollection.cs
- XmlEncoding.cs
- MD5.cs
- SqlUDTStorage.cs
- activationcontext.cs
- QueryOperationResponseOfT.cs
- ApplicationServiceManager.cs
- SoapFormatter.cs
- CapabilitiesUse.cs
- StringCollectionEditor.cs
- Zone.cs
- AxHost.cs
- MailWebEventProvider.cs
- DataGridViewHeaderCell.cs
- Crc32.cs
- PrintDialog.cs
- XmlSchemaElement.cs
- InternalTypeHelper.cs
- ActivityPropertyReference.cs
- QilFunction.cs
- ChtmlTextWriter.cs
- SafeLibraryHandle.cs
- TextContainer.cs
- BindingEntityInfo.cs
- InheritedPropertyDescriptor.cs
- OdbcConnectionPoolProviderInfo.cs
- FontTypeConverter.cs
- TypeToken.cs
- ErrorLog.cs
- X509ChainPolicy.cs
- LogWriteRestartAreaState.cs
- ServiceOperationDetailViewControl.cs
- propertyentry.cs
- WebHttpSecurity.cs
- CreateUserErrorEventArgs.cs
- ImageList.cs
- ListenerElementsCollection.cs
- HttpCapabilitiesSectionHandler.cs
- WebPartsSection.cs
- HttpWriter.cs
- ItemCheckedEvent.cs
- WebBrowser.cs
- UndoEngine.cs
- AmbientProperties.cs
- BaseCAMarshaler.cs
- OptimizedTemplateContentHelper.cs
- BaseTemplateParser.cs
- ListViewItemMouseHoverEvent.cs
- Menu.cs
- NameValueSectionHandler.cs
- AssemblyName.cs
- AspProxy.cs
- Point3DCollection.cs
- AssociatedControlConverter.cs
- SoapInteropTypes.cs
- ViewService.cs
- AssertFilter.cs
- ApplicationSettingsBase.cs
- ComplexLine.cs
- BindingMemberInfo.cs
- TcpChannelListener.cs
- SqlTriggerContext.cs
- GenericPrincipal.cs
- HostUtils.cs
- UndoEngine.cs