Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- HashJoinQueryOperatorEnumerator.cs
- MaterialGroup.cs
- ScrollContentPresenter.cs
- SqlProfileProvider.cs
- RelationshipEnd.cs
- PathStreamGeometryContext.cs
- AppearanceEditorPart.cs
- ContextMarshalException.cs
- Soap12ProtocolReflector.cs
- MultidimensionalArrayItemReference.cs
- NavigateUrlConverter.cs
- FocusWithinProperty.cs
- FileVersionInfo.cs
- CheckBoxStandardAdapter.cs
- OrderedDictionary.cs
- InputScopeNameConverter.cs
- NativeMethods.cs
- WebZone.cs
- StyleCollection.cs
- ListControl.cs
- FontSource.cs
- HwndSubclass.cs
- TargetControlTypeAttribute.cs
- DBBindings.cs
- ScriptingProfileServiceSection.cs
- VirtualPathProvider.cs
- Rectangle.cs
- EventToken.cs
- MessageQueueAccessControlEntry.cs
- OracleBoolean.cs
- GACMembershipCondition.cs
- DataGridViewComboBoxColumn.cs
- PathFigure.cs
- XPathNavigator.cs
- TraceContextEventArgs.cs
- RequestQueue.cs
- ExtendedPropertyDescriptor.cs
- BaseTemplateParser.cs
- TextDecoration.cs
- BindingMemberInfo.cs
- DBAsyncResult.cs
- TokenizerHelper.cs
- ToolStripItemTextRenderEventArgs.cs
- DataGridViewColumnEventArgs.cs
- Path.cs
- ElementNotAvailableException.cs
- DSASignatureFormatter.cs
- Positioning.cs
- SmtpTransport.cs
- ScrollBar.cs
- DefaultMemberAttribute.cs
- TextCollapsingProperties.cs
- ZoneIdentityPermission.cs
- SamlSecurityToken.cs
- safex509handles.cs
- InternalConfigHost.cs
- ServiceModelSectionGroup.cs
- SafeNativeMethods.cs
- DescendantBaseQuery.cs
- WindowInteractionStateTracker.cs
- ListItemsPage.cs
- TypeInitializationException.cs
- AutomationTextAttribute.cs
- ValidatedControlConverter.cs
- BatchStream.cs
- AttributeSetAction.cs
- ActiveXMessageFormatter.cs
- DisableDpiAwarenessAttribute.cs
- NoClickablePointException.cs
- TemplateBindingExtensionConverter.cs
- SecurityContext.cs
- NamedPermissionSet.cs
- InputLanguage.cs
- OperationFormatUse.cs
- PixelShader.cs
- CopyNamespacesAction.cs
- IsolationInterop.cs
- Adorner.cs
- Type.cs
- TdsParserSessionPool.cs
- CfgRule.cs
- AnimationClock.cs
- InputReferenceExpression.cs
- ExcCanonicalXml.cs
- EncoderBestFitFallback.cs
- SubqueryRules.cs
- PropertyDescriptorGridEntry.cs
- EmptyQuery.cs
- CatalogPartChrome.cs
- PreDigestedSignedInfo.cs
- SettingsProperty.cs
- NavigationWindowAutomationPeer.cs
- NeutralResourcesLanguageAttribute.cs
- WhereQueryOperator.cs
- SimpleTableProvider.cs
- xmlNames.cs
- objectquery_tresulttype.cs
- ToggleProviderWrapper.cs
- Permission.cs
- SpellerStatusTable.cs