ReadOnlySpan<T>.Enumerator Struktura

Definice

Poskytuje enumerátor pro prvky objektu 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

Parametry typu

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

Poznámky

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

Zpočátku je enumerátor umístěn před prvním prvkem v objektu ReadOnlySpan<T>. V této pozici Current není definováno. Je třeba volat MoveNext , aby se enumerátor přepošli na první položku v ReadOnlySpan<T> předčítání hodnoty Current.

Current vrátí stejnou hodnotu, dokud MoveNext se nevolá. MoveNext nastaví Current na další položku v objektu 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 je nedefinovaná. Nelze nastavit Current na první položku znova ReadOnlySpan<T> . Místo toho musíte vytvořit novou instanci enumerátoru.

ReadOnlySpan<T> I když je přidělen v zásobníku, podkladová data, na která ReadOnlySpan<T> odkazuje, nemusí být. Proto výčet prostřednictvím ReadOnlySpan<T> vnitřně není procedura bezpečná pro přístup z více vláken. Pokud chcete zaručit 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 rozhraní ani IEnumerator<T> rozhraní. Je to proto, že ReadOnlySpan<T>.Enumerator jde o strukturu odkazu a nelze ji zalomit.

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

Vlastnosti

Name Description
Current

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

Metody

Name Description
MoveNext()

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

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Provádí úlohy definované aplikací související s uvolněním, uvolněním nebo resetováním nespravovaných prostředků.

IEnumerator.Current

Získá prvek v kolekci na aktuální pozici enumerátoru.

IEnumerator.Reset()

Nastaví enumerátor na počáteční pozici, která je před prvním prvkem v kolekci.

IEnumerator<T>.Current

Získá prvek v kolekci na aktuální pozici enumerátoru.

Platí pro