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
- PersonalizationState.cs
- Floater.cs
- DES.cs
- ColumnWidthChangingEvent.cs
- X509WindowsSecurityToken.cs
- RegexFCD.cs
- UnmanagedMemoryAccessor.cs
- SafeLocalMemHandle.cs
- PointLight.cs
- CfgParser.cs
- XmlDownloadManager.cs
- SafeFileHandle.cs
- EventMap.cs
- ZipFileInfoCollection.cs
- ToolStripOverflowButton.cs
- MemberAccessException.cs
- BinaryEditor.cs
- MatrixCamera.cs
- DocumentReference.cs
- QilValidationVisitor.cs
- SchemaConstraints.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SQLRoleProvider.cs
- DecoderNLS.cs
- CannotUnloadAppDomainException.cs
- XhtmlBasicImageAdapter.cs
- DataGridComboBoxColumn.cs
- DataGridViewComboBoxColumn.cs
- AdRotator.cs
- HMACRIPEMD160.cs
- MultiSelectRootGridEntry.cs
- DesignerCommandSet.cs
- ShutDownListener.cs
- XmlSchemaSimpleTypeList.cs
- HttpRequest.cs
- LicenseProviderAttribute.cs
- SplayTreeNode.cs
- EntityDataSourceWrapperCollection.cs
- BindingGraph.cs
- FlowDocumentView.cs
- MarkupWriter.cs
- RegexTree.cs
- DataBindEngine.cs
- ProcessInfo.cs
- Tokenizer.cs
- EndpointNotFoundException.cs
- CustomActivityDesigner.cs
- ActivityInterfaces.cs
- UnionExpr.cs
- SortFieldComparer.cs
- TransformValueSerializer.cs
- AVElementHelper.cs
- ConsoleEntryPoint.cs
- CheckBox.cs
- DynamicUpdateCommand.cs
- ByteStack.cs
- OutputCacheProfileCollection.cs
- CommandEventArgs.cs
- CLRBindingWorker.cs
- SapiInterop.cs
- InfoCardRSACryptoProvider.cs
- RbTree.cs
- TableParagraph.cs
- FlowDocumentReader.cs
- CodeCastExpression.cs
- ColorBlend.cs
- ResourceCategoryAttribute.cs
- DataErrorValidationRule.cs
- ResXFileRef.cs
- AnchoredBlock.cs
- Rotation3DAnimationUsingKeyFrames.cs
- MaskedTextBox.cs
- XmlSchemaComplexType.cs
- TreeSet.cs
- NamespaceMapping.cs
- SecurityKeyIdentifier.cs
- AdRotator.cs
- DebugTrace.cs
- WithStatement.cs
- WSSecureConversationDec2005.cs
- OperatingSystem.cs
- DynamicDataResources.Designer.cs
- EventHandlersStore.cs
- _TransmitFileOverlappedAsyncResult.cs
- SqlDataSource.cs
- SqlBuilder.cs
- FigureParagraph.cs
- SamlAuthenticationStatement.cs
- SecureStringHasher.cs
- SurrogateEncoder.cs
- SetterBase.cs
- StandardTransformFactory.cs
- Guid.cs
- MetricEntry.cs
- MemberHolder.cs
- DataRowChangeEvent.cs
- FixedSOMTableRow.cs
- Size3D.cs
- InternalConfigEventArgs.cs
- TreeNodeSelectionProcessor.cs