singrdk/base/Applications/Runtime/Full/System/Collections/IEnumerator.cs

54 lines
2.1 KiB
C#

// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//============================================================
//
// Interface: IEnumerator
//
// Purpose: Base interface for all enumerators.
//
//===========================================================
namespace System.Collections
{
using System;
using System.Runtime.InteropServices;
// Base interface for all enumerators, providing a simple approach
// to iterating over a collection.
//| <include path='docs/doc[@for="IEnumerator"]/*' />
[Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")]
public interface IEnumerator
{
// Advances the enumerator to the next element of the enumeration and
// returns a boolean indicating whether an element is available. Upon
// creation, an enumerator is conceptually positioned before the first
// element of the enumeration, and the first call to MoveNext
// brings the first element of the enumeration into view.
//
//| <include path='docs/doc[@for="IEnumerator.MoveNext"]/*' />
bool MoveNext();
// Returns the current element of the enumeration. The returned value is
// undefined before the first call to MoveNext and following a
// call to MoveNext that returned false. Multiple calls to
// GetCurrent with no intervening calls to MoveNext
// will return the same object.
//
//| <include path='docs/doc[@for="IEnumerator.Current"]/*' />
Object Current {
get;
}
// Resets the enumerator to the beginning of the enumeration, starting over.
// The preferred behavior for Reset is to return the exact same enumeration.
// This means if you modify the underlying collection then call Reset, your
// IEnumerator will be invalid, just as it would have been if you had called
// MoveNext or Current.
//
//| <include path='docs/doc[@for="IEnumerator.Reset"]/*' />
void Reset();
}
}