Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / GenericEnumerator.cs / 1305600 / 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
- UserControlBuildProvider.cs
- DesignerAttribute.cs
- TextRunTypographyProperties.cs
- MDIWindowDialog.cs
- XmlRootAttribute.cs
- TemplateControlParser.cs
- ListItemParagraph.cs
- DtdParser.cs
- ProcessHostConfigUtils.cs
- IndexOutOfRangeException.cs
- RequestSecurityTokenResponse.cs
- QueryTreeBuilder.cs
- AutomationElementCollection.cs
- RtfToXamlReader.cs
- MdiWindowListItemConverter.cs
- IssuedTokenClientCredential.cs
- EventEntry.cs
- InfoCardRequestException.cs
- TrackingMemoryStreamFactory.cs
- XmlHierarchicalEnumerable.cs
- LineProperties.cs
- TokenBasedSet.cs
- SqlConnectionManager.cs
- WindowsAltTab.cs
- ActivitySurrogate.cs
- DataViewListener.cs
- ExtensionSurface.cs
- OrderByQueryOptionExpression.cs
- DataColumnMapping.cs
- SchemaEntity.cs
- FieldBuilder.cs
- DropShadowEffect.cs
- XmlText.cs
- CompilerScopeManager.cs
- CodeExpressionCollection.cs
- GeneralTransform3DTo2D.cs
- StreamResourceInfo.cs
- IndexedWhereQueryOperator.cs
- WriteStateInfoBase.cs
- Compress.cs
- ListItemCollection.cs
- PriorityBinding.cs
- ResourceSetExpression.cs
- followingquery.cs
- StructureChangedEventArgs.cs
- TextTreeFixupNode.cs
- BufferModeSettings.cs
- ObjectViewFactory.cs
- nulltextnavigator.cs
- NavigationWindowAutomationPeer.cs
- _ListenerAsyncResult.cs
- PipeStream.cs
- ImageBrush.cs
- FixedStringLookup.cs
- HealthMonitoringSection.cs
- ComboBoxHelper.cs
- DataConnectionHelper.cs
- TabletDeviceInfo.cs
- String.cs
- IIS7WorkerRequest.cs
- CodeMethodInvokeExpression.cs
- ItemsPanelTemplate.cs
- VisualStateGroup.cs
- ScrollBarRenderer.cs
- DateRangeEvent.cs
- TabControlAutomationPeer.cs
- KeyEventArgs.cs
- ComponentEditorPage.cs
- BinHexEncoder.cs
- DelayedRegex.cs
- Vector3DAnimation.cs
- SafeFileMapViewHandle.cs
- OracleCommandSet.cs
- ListItemCollection.cs
- TreeView.cs
- DayRenderEvent.cs
- InternalBufferOverflowException.cs
- PathData.cs
- SpeechDetectedEventArgs.cs
- TreeWalkHelper.cs
- Int64Storage.cs
- DTCTransactionManager.cs
- DocumentScope.cs
- QilSortKey.cs
- PageWrapper.cs
- PTManager.cs
- XmlNodeComparer.cs
- PreProcessor.cs
- StringArrayConverter.cs
- XmlSerializerAssemblyAttribute.cs
- Decorator.cs
- WebScriptEnablingElement.cs
- SortExpressionBuilder.cs
- AdapterDictionary.cs
- ColorConverter.cs
- CompressionTransform.cs
- AdRotator.cs
- ListViewInsertionMark.cs
- DocumentSequence.cs
- StringWriter.cs