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
- OutputCacheSection.cs
- ObjectConverter.cs
- EncryptedXml.cs
- RuntimeVariableList.cs
- ProcessInfo.cs
- RangeValidator.cs
- MethodToken.cs
- HtmlLinkAdapter.cs
- NotSupportedException.cs
- ButtonFieldBase.cs
- UpdatePanelTrigger.cs
- contentDescriptor.cs
- Token.cs
- FrameworkTemplate.cs
- LabelEditEvent.cs
- ResourceType.cs
- hresults.cs
- BooleanExpr.cs
- PrintPageEvent.cs
- ErrorHandlerModule.cs
- GC.cs
- ExtractorMetadata.cs
- TreeNodeSelectionProcessor.cs
- DataRecordObjectView.cs
- VisualBrush.cs
- WindowsProgressbar.cs
- SqlConnectionStringBuilder.cs
- EventSinkActivityDesigner.cs
- CounterSet.cs
- PartialList.cs
- DirectoryObjectSecurity.cs
- BoundingRectTracker.cs
- PropertyGeneratedEventArgs.cs
- MessageContractMemberAttribute.cs
- DetailsViewUpdateEventArgs.cs
- RawStylusInputCustomData.cs
- FileDialogCustomPlace.cs
- MetadataFile.cs
- SinglePageViewer.cs
- CoreSwitches.cs
- ErasingStroke.cs
- HostingEnvironmentSection.cs
- RectangleF.cs
- VirtualPathUtility.cs
- EdmItemCollection.cs
- CrossContextChannel.cs
- CollectionBuilder.cs
- Panel.cs
- Typography.cs
- remotingproxy.cs
- RuleSet.cs
- ToggleButton.cs
- ApplyImportsAction.cs
- FontWeight.cs
- ModifiableIteratorCollection.cs
- WithParamAction.cs
- NavigationWindowAutomationPeer.cs
- serverconfig.cs
- FontWeightConverter.cs
- DataGridViewCheckBoxCell.cs
- GraphicsPath.cs
- ScriptingWebServicesSectionGroup.cs
- AcceleratedTokenProvider.cs
- ComponentDispatcher.cs
- PrinterSettings.cs
- SqlNodeAnnotation.cs
- XhtmlConformanceSection.cs
- RootBrowserWindow.cs
- Knowncolors.cs
- DataRowCollection.cs
- SystemResourceKey.cs
- WebConfigurationManager.cs
- BamlResourceDeserializer.cs
- TemplateControlBuildProvider.cs
- ResXFileRef.cs
- Buffer.cs
- BaseTemplateBuildProvider.cs
- ValidationRuleCollection.cs
- ReverseInheritProperty.cs
- RegexRunner.cs
- IsolatedStoragePermission.cs
- SystemIcmpV4Statistics.cs
- MultiTrigger.cs
- Stacktrace.cs
- EnumMember.cs
- Propagator.cs
- PowerModeChangedEventArgs.cs
- RoleManagerModule.cs
- UserUseLicenseDictionaryLoader.cs
- InputBinder.cs
- DockPatternIdentifiers.cs
- ConnectionManagementSection.cs
- OutputCacheModule.cs
- HttpProcessUtility.cs
- XmlCodeExporter.cs
- EntryIndex.cs
- PageSetupDialog.cs
- XmlLinkedNode.cs
- AffineTransform3D.cs
- SqlDataSourceFilteringEventArgs.cs