ReadOnlySpan<T>.Enumerator Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Enumerator für diese Elemente eines ReadOnlySpan<T>-Elements bereit.
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Typparameter
- T
- Vererbung
Hinweise
Der C# -Foreach der Sprache C# und der For Each... Das nächste Konstrukt in Visual Basic blendet die Komplexität von Enumeratoren aus. Anstatt den Enumerator direkt zu bearbeiten, wird die Verwendung von foreach
oder For Each...Next
empfohlen.
Zunächst wird der Enumerator vor dem ersten Element im ReadOnlySpan<T>positioniert. An dieser Position ist Current nicht definiert. Sie müssen aufrufen MoveNext , um den Enumerator zum ersten Element in der zu wechseln, ReadOnlySpan<T> bevor Sie den Wert von Currentlesen.
Current gibt den gleichen Wert zurück, bis MoveNext aufgerufen wird. MoveNextwird auf das nächste Element im ReadOnlySpan<T>festgelegtCurrent.
Wenn MoveNext das Ende von ReadOnlySpan<T>übergibt, MoveNext gibt zurück false
. Wenn sich der Enumerator in diesem Zustand befindet, werden nachfolgende Aufrufe von MoveNext ebenfalls zurückgegeben false
und Current sind nicht definiert. Sie können nicht auf das erste Element im ReadOnlySpan<T> erneut festlegenCurrent. Stattdessen müssen Sie eine neue Enumeratorinstanz erstellen.
Obwohl auf ReadOnlySpan<T> dem Stapel zugeordnet ist, sind die zugrunde liegenden Daten, auf die der ReadOnlySpan<T> verweist, möglicherweise nicht. Daher ist das Aufzählen durch eine ReadOnlySpan<T> intrinsisch kein threadsicheres Verfahren. Um die Threadsicherheit während der Enumeration zu gewährleisten, müssen Sie eine eigene Synchronisierung implementieren.
Im Gegensatz zu einigen anderen Enumeratorstrukturen in .NET ist :ReadOnlySpan<T>.Enumerator
Implementiert die IEnumerator -Schnittstelle oder IEnumerator<T> nicht. Dies liegt daran, dass ReadOnlySpan<T>.Enumerator eine Verweisstruktur ist und nicht geschachtelt werden kann.
Enthält
Reset
keine -Methode, die den Enumerator auf seine Anfangsposition vor dem ersten Element in der Spanne festlegen kann. (Die IEnumerator.Reset() -Methode muss als Teil der -Schnittstelle implementiert werden, aber die meisten Implementierer lösen entweder eine Ausnahme aus oder stellen keine Implementierung bereit.)
Eigenschaften
Current |
Ruft einen Verweis auf das Element an der aktuellen Position des Enumerators ab. |
Methoden
MoveNext() |
Legt den Enumerator auf das nächste Element von ReadOnlySpan<T> fest. |