| File: System\DirectoryServices\AccountManagement\ValueCollectionEnumerator.cs | Web Access |
| Project: src\runtime\src\libraries\System.DirectoryServices.AccountManagement\src\System.DirectoryServices.AccountManagement.csproj (System.DirectoryServices.AccountManagement) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; namespace System.DirectoryServices.AccountManagement { internal sealed class ValueCollectionEnumerator<T> : IEnumerator<T>, IEnumerator // T must be a ValueType { // // Public properties // public T Current { get { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ValueCollectionEnumerator", "Entering Current"); return _inner.Current; } } object IEnumerator.Current { get { return Current; } } // // Public methods // public bool MoveNext() { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ValueCollectionEnumerator", "Entering MoveNext"); return _inner.MoveNext(); } bool IEnumerator.MoveNext() { return MoveNext(); } public void Reset() { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ValueCollectionEnumerator", "Entering Reset"); _inner.Reset(); } void IEnumerator.Reset() { Reset(); } public void Dispose() { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ValueCollectionEnumerator", "Entering Dispose"); _inner.Dispose(); } // // Internal constructors // internal ValueCollectionEnumerator(TrackedCollection<T> trackingList, List<TrackedCollection<T>.ValueEl> combinedValues) { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ValueCollectionEnumerator", "Ctor"); _inner = new TrackedCollectionEnumerator<T>("ValueCollectionEnumerator", trackingList, combinedValues); } // // Private implementation // private readonly TrackedCollectionEnumerator<T> _inner; } }