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
- LogicalTreeHelper.cs
- LambdaCompiler.Lambda.cs
- FocusTracker.cs
- ControlCachePolicy.cs
- MultiBindingExpression.cs
- DropSourceBehavior.cs
- ExtensionSimplifierMarkupObject.cs
- Shape.cs
- GenericPrincipal.cs
- AttachedAnnotation.cs
- InputBindingCollection.cs
- Timer.cs
- XamlWriter.cs
- HtmlFormParameterWriter.cs
- DataGridCellAutomationPeer.cs
- GridView.cs
- ParserContext.cs
- TransactionBridgeSection.cs
- FastPropertyAccessor.cs
- OleDbConnection.cs
- PageParser.cs
- WebBrowserSiteBase.cs
- UnconditionalPolicy.cs
- Light.cs
- XmlHierarchicalEnumerable.cs
- SqlDependency.cs
- SingletonInstanceContextProvider.cs
- PropertyBuilder.cs
- __Filters.cs
- WhitespaceRuleLookup.cs
- assemblycache.cs
- SerializableAttribute.cs
- PropertyNames.cs
- BitmapDecoder.cs
- ParsedRoute.cs
- COM2ColorConverter.cs
- GenericWebPart.cs
- ApplyTemplatesAction.cs
- ContextItemManager.cs
- TileBrush.cs
- MDIControlStrip.cs
- PassportAuthenticationEventArgs.cs
- WsatTransactionHeader.cs
- EditingCoordinator.cs
- TemplateNameScope.cs
- GetUserPreferenceRequest.cs
- ViewStateException.cs
- TypeForwardedToAttribute.cs
- ArraySegment.cs
- SQLInt32Storage.cs
- InstalledVoice.cs
- ContextCorrelationInitializer.cs
- ProjectionPlanCompiler.cs
- SafeNativeMethods.cs
- FlowDocumentScrollViewer.cs
- SvcMapFile.cs
- ExeConfigurationFileMap.cs
- WS2007FederationHttpBindingElement.cs
- QueryOutputWriter.cs
- DbUpdateCommandTree.cs
- MD5.cs
- PageFunction.cs
- ListViewHitTestInfo.cs
- EmulateRecognizeCompletedEventArgs.cs
- MachineKeySection.cs
- ReflectEventDescriptor.cs
- SqlBulkCopyColumnMapping.cs
- Module.cs
- ProfileModule.cs
- VerificationException.cs
- SiteMapHierarchicalDataSourceView.cs
- ArraySegment.cs
- ClientScriptManager.cs
- UnsafeMethods.cs
- unsafeIndexingFilterStream.cs
- StatusBar.cs
- Image.cs
- TypedTableBase.cs
- hresults.cs
- HtmlInputControl.cs
- PrintPreviewGraphics.cs
- CollectionEditorDialog.cs
- ImageAutomationPeer.cs
- Ray3DHitTestResult.cs
- FieldDescriptor.cs
- PageContentAsyncResult.cs
- GeneralTransform3DCollection.cs
- basecomparevalidator.cs
- Sequence.cs
- OneOfConst.cs
- SessionState.cs
- SystemException.cs
- StatusBarAutomationPeer.cs
- ArrayElementGridEntry.cs
- smtppermission.cs
- EntityDataSourceStatementEditorForm.cs
- DataGridViewTextBoxCell.cs
- RefreshPropertiesAttribute.cs
- WorkflowItemsPresenter.cs
- CollectionBuilder.cs