IEnumerator.Current 屬性

定義

取得集合中位於列舉值目前位置的元素。Gets the element in the collection at the current position of the enumerator.

public:
 property System::Object ^ Current { System::Object ^ get(); };
public object Current { get; }
public object? Current { get; }
member this.Current : obj
Public ReadOnly Property Current As Object

屬性值

Object

位於列舉值中目前位置的集合中的元素。The element in the collection at the current position of the enumerator.

範例

下列程式碼範例示範 IEnumerator 自訂集合的介面實作為介面。The following code example demonstrates the implementation of the IEnumerator interfaces for a custom collection. 在此範例中, Current 不會明確呼叫,但是它會實作為支援使用 foreach for each Visual Basic) 中的 (。In this example, Current is not explicitly called, but it is implemented to support the use of foreach (for each in Visual Basic). 這個程式碼範例是介面較大範例的一部分 IEnumeratorThis code example is part of a larger example for the IEnumerator interface.

// When you implement IEnumerable, you must also implement IEnumerator.
public class PeopleEnum : IEnumerator
{
    public Person[] _people;

    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;

    public PeopleEnum(Person[] list)
    {
        _people = list;
    }

    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }

    public void Reset()
    {
        position = -1;
    }

    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    public Person Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}
' When you implement IEnumerable, you must also implement IEnumerator.
Public Class PeopleEnum
    Implements IEnumerator

    Public _people() As Person

    ' Enumerators are positioned before the first element
    ' until the first MoveNext() call.
    Dim position As Integer = -1

    Public Sub New(ByVal list() As Person)
        _people = list
    End Sub

    Public Function MoveNext() As Boolean Implements IEnumerator.MoveNext
        position = position + 1
        Return (position < _people.Length)
    End Function

    Public Sub Reset() Implements IEnumerator.Reset
        position = -1
    End Sub

    Public ReadOnly Property Current() As Object Implements IEnumerator.Current
        Get
            Try
                Return _people(position)
            Catch ex As IndexOutOfRangeException
                Throw New InvalidOperationException()
            End Try
        End Get
    End Property
End Class

備註

Current 在下列任何情況下都未定義:Current is undefined under any of the following conditions:

  • 列舉值位於集合中的第一個元素之前,緊接在建立列舉值之後。The enumerator is positioned before the first element in the collection, immediately after the enumerator is created. MoveNext 必須先呼叫,才能將列舉值前移至集合的第一個元素,然後再讀取的值 CurrentMoveNext must be called to advance the enumerator to the first element of the collection before reading the value of Current.

  • 最後一個傳回的 MoveNext 呼叫 false ,表示集合結尾。The last call to MoveNext returned false, which indicates the end of the collection.

  • 列舉值因為集合中的變更(例如加入、修改或刪除元素)而失效。The enumerator is invalidated due to changes made in the collection, such as adding, modifying, or deleting elements.

Current 會傳回相同的物件直到呼叫 MoveNextCurrent returns the same object until MoveNext is called. MoveNext 會將 Current 設定為下一個項目。MoveNext sets Current to the next element.

適用於

另請參閱