Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IdentityManager.cs
- ClassHandlersStore.cs
- DataGridBoolColumn.cs
- AssemblyHash.cs
- BookmarkScope.cs
- InstanceCollisionException.cs
- RuntimeConfigLKG.cs
- TreeNodeCollectionEditor.cs
- HtmlContainerControl.cs
- BamlBinaryReader.cs
- CodeDomSerializerException.cs
- MSAAWinEventWrap.cs
- GPPOINTF.cs
- Membership.cs
- UshortList2.cs
- _SSPIWrapper.cs
- Vector.cs
- SafeNativeMethods.cs
- ControlValuePropertyAttribute.cs
- SerializationTrace.cs
- PeerObject.cs
- EncodingTable.cs
- ClientRoleProvider.cs
- RepeatBehaviorConverter.cs
- ZipIOLocalFileHeader.cs
- RedBlackList.cs
- ConfigsHelper.cs
- SchemaLookupTable.cs
- SessionStateItemCollection.cs
- OdbcErrorCollection.cs
- LostFocusEventManager.cs
- TextClipboardData.cs
- MenuCommandsChangedEventArgs.cs
- ValidationEventArgs.cs
- MarkupCompilePass2.cs
- MeshGeometry3D.cs
- RedirectionProxy.cs
- ConfigurationStrings.cs
- ObjectDataSourceView.cs
- CatalogZoneBase.cs
- RemoveStoryboard.cs
- COM2ComponentEditor.cs
- PrePrepareMethodAttribute.cs
- EventLogReader.cs
- URLIdentityPermission.cs
- MediaTimeline.cs
- DomNameTable.cs
- ProxyDataContractResolver.cs
- DataServiceClientException.cs
- ScriptComponentDescriptor.cs
- Scripts.cs
- ControlCollection.cs
- SpanIndex.cs
- _SslSessionsCache.cs
- safemediahandle.cs
- ActivityStatusChangeEventArgs.cs
- SQLBinaryStorage.cs
- HtmlTernaryTree.cs
- DataReceivedEventArgs.cs
- GenericEnumConverter.cs
- SqlClientWrapperSmiStreamChars.cs
- DesignerInterfaces.cs
- assemblycache.cs
- WindowInteropHelper.cs
- UInt64.cs
- HostUtils.cs
- WindowsGraphics.cs
- SetMemberBinder.cs
- MimeTypeAttribute.cs
- TrackingRecord.cs
- BitmapEncoder.cs
- AmbientValueAttribute.cs
- TextFormatter.cs
- GenericParameterDataContract.cs
- ReadOnlyPropertyMetadata.cs
- SystemIPGlobalProperties.cs
- Panel.cs
- DataGridCaption.cs
- Cursor.cs
- SqlMethods.cs
- FlowDocumentScrollViewer.cs
- ActivityExecutorOperation.cs
- DataListItemCollection.cs
- IdleTimeoutMonitor.cs
- FilterQueryOptionExpression.cs
- CompilationUnit.cs
- MasterPageParser.cs
- HttpContext.cs
- AuthenticationManager.cs
- DiagnosticsConfigurationHandler.cs
- SmiContextFactory.cs
- TreeViewImageKeyConverter.cs
- MailDefinition.cs
- MouseGestureConverter.cs
- SystemIPAddressInformation.cs
- RemoteWebConfigurationHostStream.cs
- XmlDictionaryReaderQuotas.cs
- CompilerHelpers.cs
- NamedPipeConnectionPoolSettings.cs
- ObjectSecurity.cs