Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IEnumerator.Current-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft das Element in der Auflistung an der aktuellen Position des Enumerators ab.

Namespace:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

object Current { get; }

Eigenschaftswert

Type: System.Object

Das Element in der Auflistung an der aktuellen Position des Enumerators.

Current Wenn Sie eine der folgenden Bedingungen ist nicht definiert werden:

  • Der Enumerator ist vor dem ersten Element in der Auflistung positioniert, sofort nach dem Erstellen des Enumerators. MoveNextmuss aufgerufen werden, um den Enumerator auf das erste Element der Auflistung vor dem Lesen des Werts von Current.

  • Der letzte Aufruf von MoveNext zurückgegebene false, gibt das Ende der Auflistung an.

  • Der Enumerator ist aufgrund von Änderungen in der Auflistung, z. B. hinzufügen, bearbeiten oder Löschen von Elementen für ungültig erklärt.

Current gibt solange dasselbe Objekt zurück, bis MoveNext aufgerufen wird. MoveNext legt Current auf das nächste Element fest.

Das folgende Codebeispiel veranschaulicht die Implementierung von der IEnumerator Schnittstellen für eine benutzerdefinierte Auflistung. In diesem Beispiel Current nicht explizit aufgerufen wird, aber implementiert, um die Verwendung von unterstützt foreach (for each in Visual Basic). Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die IEnumerator Schnittstelle.

// 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();
            }
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: