ReadOnlySpan<T>.Enumerator Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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> |