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 die Elemente eines .ReadOnlySpan<T>
public: value class ReadOnlySpan<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IEnumerator
interface IDisposable
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure ReadOnlySpan(Of T).Enumerator
Typparameter
- T
- Vererbung
- Implementiert
Hinweise
C# foreach der C#-Sprache und der For Each... Als NächstesKonstrukt in Visual Basic die Komplexität von Enumeratoren ausblendet. Anstatt den Enumerator direkt zu bearbeiten, verwenden foreach oder For Each...Next wird empfohlen.
Zunächst wird der Enumerator vor dem ersten Element in der ReadOnlySpan<T>Enumerator positioniert. An dieser Position Current ist nicht definiert. Sie müssen aufrufen MoveNext , um den Enumerator zum ersten Element im ReadOnlySpan<T> Vorlesen des Werts Currentzu wechseln.
Current gibt denselben Wert zurück, bis MoveNext er aufgerufen wird. MoveNextwird Current auf das nächste Element in der .ReadOnlySpan<T>
Wenn MoveNext das Ende des ReadOnlySpan<T>MoveNext , gibt .false Wenn sich der Enumerator in diesem Zustand befindet, werden nachfolgende Aufrufe MoveNext zurückgegeben false und Current sind nicht definiert. Sie können das erste Element nicht erneut ReadOnlySpan<T> festlegenCurrent. Stattdessen müssen Sie eine neue Enumerationsinstanz erstellen.
Obwohl die ReadOnlySpan<T> Zuordnung auf dem Stapel erfolgt, sind die zugrunde liegenden Daten, auf die die ReadOnlySpan<T> Punkte verwiesen werden, möglicherweise nicht vorhanden. Daher ist das Aufzählen durch eine ReadOnlySpan<T> threadsichere Prozedur in der Regel keine threadsichere Prozedur. Um die Threadsicherheit während der Enumeration zu gewährleisten, müssen Sie ihre eigene Synchronisierung implementieren.
Im Gegensatz zu einigen anderen Enumerationsstrukturen in .NET, ReadOnlySpan<T>.Enumerator:
Implementiert weder die Schnittstelle noch die IEnumeratorIEnumerator<T> Schnittstelle. Dies liegt daran, dass ReadOnlySpan<T>.Enumerator es sich um eine Refstruktur handelt und nicht geschachtelt werden kann.
Enthält keine
ResetMethode, die den Enumerator vor dem ersten Element in der Spanne auf seine Anfangsposition festlegen kann. (Die IEnumerator.Reset() Methode muss als Teil der Schnittstelle implementiert werden, aber die meisten Implementierungsmodule lösen entweder eine Ausnahme aus oder stellen keine Implementierung bereit.)
Eigenschaften
| Name | Beschreibung |
|---|---|
| Current |
Ruft einen Verweis auf das Element an der aktuellen Position des Enumerators ab. |
Methoden
| Name | Beschreibung |
|---|---|
| MoveNext() |
Wechselt den Enumerator zum nächsten Element der .ReadOnlySpan<T> |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IDisposable.Dispose() |
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind. |
| IEnumerator.Current |
Ruft das Element in der Auflistung an der aktuellen Position des Enumerators ab. |
| IEnumerator.Reset() |
Legt den Enumerator auf seine Anfangsposition fest, die sich vor dem ersten Element in der Auflistung befindet. |
| IEnumerator<T>.Current |
Ruft das Element in der Auflistung an der aktuellen Position des Enumerators ab. |