Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / 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. //------------------------------------------------------------------------------ // 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
- UseLicense.cs
- DateTimeFormat.cs
- XmlnsCache.cs
- XPathParser.cs
- TypeGeneratedEventArgs.cs
- XPathNode.cs
- DataObject.cs
- DataSourceSelectArguments.cs
- CoreSwitches.cs
- Tracer.cs
- IOThreadTimer.cs
- DBCommandBuilder.cs
- TableLayoutPanelCodeDomSerializer.cs
- ConstraintCollection.cs
- DispatcherTimer.cs
- SqlProcedureAttribute.cs
- FormViewDeletedEventArgs.cs
- TypeDescriptor.cs
- Binding.cs
- initElementDictionary.cs
- RuleAttributes.cs
- EdmToObjectNamespaceMap.cs
- FormsAuthenticationEventArgs.cs
- invalidudtexception.cs
- DropShadowBitmapEffect.cs
- TraceHandlerErrorFormatter.cs
- SerializationUtility.cs
- RadioButtonPopupAdapter.cs
- XamlStackWriter.cs
- DateTimeUtil.cs
- VersionConverter.cs
- TransactionManager.cs
- FontDialog.cs
- TreeViewDataItemAutomationPeer.cs
- AlphaSortedEnumConverter.cs
- FilterableData.cs
- CompressedStack.cs
- FontFamilyIdentifier.cs
- DataSourceCache.cs
- HMACSHA1.cs
- PropertyToken.cs
- TraceContextRecord.cs
- Int32CollectionConverter.cs
- Rotation3DAnimationUsingKeyFrames.cs
- DbTransaction.cs
- XhtmlBasicControlAdapter.cs
- PrintDialogException.cs
- GeneralTransformGroup.cs
- VerificationException.cs
- WindowsGraphicsWrapper.cs
- SimpleLine.cs
- AutomationPatternInfo.cs
- DecoderFallback.cs
- IsolatedStorageFileStream.cs
- OciEnlistContext.cs
- Win32PrintDialog.cs
- SendSecurityHeader.cs
- HttpModule.cs
- JavaScriptSerializer.cs
- WebException.cs
- LogManagementAsyncResult.cs
- DBCommand.cs
- DefaultValidator.cs
- LocalFileSettingsProvider.cs
- Stroke.cs
- HashCoreRequest.cs
- TextTrailingWordEllipsis.cs
- RTTrackingProfile.cs
- StrongNameUtility.cs
- PageCodeDomTreeGenerator.cs
- SkinBuilder.cs
- Int32RectValueSerializer.cs
- CriticalFinalizerObject.cs
- Material.cs
- ControllableStoryboardAction.cs
- DependencyProperty.cs
- XmlSchemaComplexContent.cs
- ScriptMethodAttribute.cs
- DateTime.cs
- DragCompletedEventArgs.cs
- Cursor.cs
- XmlTypeMapping.cs
- XPathAxisIterator.cs
- XmlSchemaImporter.cs
- Attributes.cs
- TypeToken.cs
- DbMetaDataCollectionNames.cs
- ImageCollectionEditor.cs
- NativeMethods.cs
- ColorContext.cs
- CodeGenerator.cs
- _AutoWebProxyScriptWrapper.cs
- ExtensionCollection.cs
- Vector.cs
- PerspectiveCamera.cs
- Win32PrintDialog.cs
- CodeAssignStatement.cs
- DirectoryRedirect.cs
- Pair.cs
- ContainerFilterService.cs