ReadOnlySpan<T>.Enumerator Struktura

Definice

Poskytuje výčet prvků objektu ReadOnlySpan<T>.

public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator

Parametry typu

T
Dědičnost
ReadOnlySpan<T>.Enumerator

Poznámky

Foreach jazyka C# a for Each... Další konstruktor v jazyce Visual Basic skryje složitost výčtů. Místo přímé manipulace s enumerátorem použijte foreach nebo For Each...Next doporučujeme.

Zpočátku je enumerátor umístěn před první prvek v ReadOnlySpan<T>. V této pozici Current není definováno. Před přečtením hodnoty Currentje nutné volatMoveNext, aby se enumerátor přepojí na první položku v ReadOnlySpan<T> seznamu .

Current vrátí stejnou hodnotu, dokud MoveNext se nevolá. MoveNext nastaví Current na další položku v sadě ReadOnlySpan<T>.

Pokud MoveNext předá konec ReadOnlySpan<T>, MoveNext vrátí false. Pokud je enumerátor v tomto stavu, následná volání, která se MoveNext mají vrátit false a Current není definována. Znovu nelze nastavit Current první položku ReadOnlySpan<T> . Místo toho musíte vytvořit novou instanci enumerátoru.

ReadOnlySpan<T> I když je v zásobníku přidělena, podkladová data, na která ReadOnlySpan<T> odkazuje, nemusí být. Proto výčet prostřednictvím vnitřně není procedurou bezpečnou pro ReadOnlySpan<T> vlákno. Pokud chcete zajistit bezpečnost vláken během výčtu, musíte implementovat vlastní synchronizaci.

Na rozdíl od některých jiných struktur enumerátoru v .NET:ReadOnlySpan<T>.Enumerator

  • Neimplementuje IEnumerator ani IEnumerator<T> rozhraní. Důvodem je to, že ReadOnlySpan<T>.Enumerator jde o referenční strukturu a nelze ji vytvořit do rámečku.

  • Nezahrnuje metodu Reset , která může nastavit enumerátor na jeho počáteční pozici před prvním prvkem v rozsahu. (Metoda musí být implementována IEnumerator.Reset() jako součást rozhraní, ale většina implementátorů buď vyvolá výjimku nebo neposkytuje žádnou implementaci.)

Vlastnosti

Current

Získá odkaz na položku na aktuální pozici enumerátoru.

Metody

MoveNext()

Přejde enumerátor na další položku .ReadOnlySpan<T>

Platí pro