ReadOnlySpan<T>.Enumerator Struktura
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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. |