ReadOnlySpan<T>.Enumerator Struktura

Definicja

Udostępnia moduł wyliczający dla elementów elementu 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
Dziedziczenie
ReadOnlySpan<T>.Enumerator

Uwagi

Foreach języka C# języka C# i dla każdego... Następna konstrukcja w Visual Basic ukrywa złożoność modułów wyliczania. Zamiast bezpośrednio manipulować modułem wyliczającym, zaleca się użycie foreach lub For Each...Next zalecane.

Początkowo moduł wyliczający jest umieszczony przed pierwszym elementem w elemecie ReadOnlySpan<T>. Na tym stanowisku Current jest niezdefiniowany. Musisz wywołać metodę MoveNext , aby przejść do pierwszego elementu w elemencie ReadOnlySpan<T> przed odczytaniem wartości Current.

Current zwraca tę samą wartość, dopóki MoveNext nie zostanie wywołana. MoveNext ustawia Current wartość na następny element w elemencie ReadOnlySpan<T>.

Jeśli MoveNext przejdzie koniec elementu ReadOnlySpan<T>, MoveNext zwraca wartość false. Gdy moduł wyliczający znajduje się w tym stanie, kolejne wywołania do MoveNext zwrócenia false i Current są niezdefiniowane. Nie można ustawić Current pierwszego elementu na ReadOnlySpan<T> ponownie. Zamiast tego należy utworzyć nowe wystąpienie modułu wyliczającego.

Chociaż element ReadOnlySpan<T> jest przydzielany na stosie, bazowe dane, na których ReadOnlySpan<T> wskazuje, mogą nie być. W związku z tym wyliczanie za pomocą elementu nie ReadOnlySpan<T> jest wewnętrznie procedurą bezpieczną wątkowo. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, należy zaimplementować własną synchronizację.

W przeciwieństwie do niektórych innych struktur wyliczania na platformie .NET:ReadOnlySpan<T>.Enumerator

  • Nie implementuje interfejsu IEnumerator lub IEnumerator<T> . Jest to spowodowane tym, że ReadOnlySpan<T>.Enumerator jest strukturą ref i nie można jej boksować.

  • Nie zawiera Reset metody, która może ustawić moduł wyliczający na jego pozycję początkową przed pierwszym elementem w zakresie. (Metoda IEnumerator.Reset() musi być zaimplementowana w ramach interfejsu, ale większość implementatorów zgłasza wyjątek lub nie zapewnia implementacji).

Właściwości

Current

Pobiera odwołanie do elementu w bieżącej pozycji modułu wyliczającego.

Metody

MoveNext()

Rozwija moduł wyliczający do następnego elementu .ReadOnlySpan<T>

Dotyczy