ReadOnlySpan<T>.Enumerator Struct

Definizione

Fornisce un enumeratore per gli elementi di un ReadOnlySpan<T>.Provides an enumerator for the elements of a ReadOnlySpan<T>.

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

Parametri di tipo

T
Ereditarietà
ReadOnlySpan<T>.Enumerator

Commenti

Foreach c# del linguaggio C# e per ogni... Il costrutto successivo in Visual Basic nasconde la complessità degli enumeratori.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. Anziché modificare direttamente l'enumeratore, foreach For Each...Next è consigliabile utilizzare o.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Inizialmente, l'enumeratore è posizionato prima del primo elemento in ReadOnlySpan<T> .Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. In questa posizione, la proprietà Current è indefinita.At this position, Current is undefined. È necessario chiamare MoveNext per far avanzare l'enumeratore al primo elemento in ReadOnlySpan<T> prima di leggere il valore di Current .You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

Current Restituisce lo stesso valore fino a quando non MoveNext viene chiamato il metodo.Current returns the same value until MoveNext is called. MoveNext imposta Current sull'elemento successivo nell'oggetto ReadOnlySpan<T> .MoveNext sets Current to the next item in the ReadOnlySpan<T>.

Se MoveNext supera la fine di ReadOnlySpan<T> , MoveNext restituisce false .If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Quando l'enumeratore si trova in questo stato, le chiamate successive a MoveNext restituiscono anche false e non Current sono definite.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Non è possibile impostare Current di nuovo il primo elemento nell'oggetto ReadOnlySpan<T> . è invece necessario creare una nuova istanza dell'enumeratore.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

Sebbene ReadOnlySpan<T> venga allocato nello stack, i dati sottostanti sui quali ReadOnlySpan<T> puntano, non possono essere.Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. Pertanto, l'enumerazione tramite un ReadOnlySpan<T> non è intrinsecamente una procedura thread-safe.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. Per garantire thread safety durante l'enumerazione, è necessario implementare una sincronizzazione personalizzata.To guarantee thread safety during enumeration, you must implement your own synchronization.

A differenza di altre strutture di enumeratore in .NET, il ReadOnlySpan<T>.Enumerator :Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • Non implementa l' IEnumerator interfaccia o IEnumerator<T> .Does not implement the IEnumerator or IEnumerator<T> interface. Questo è dovuto ReadOnlySpan<T>.Enumerator al fatto che è uno struct di riferimento e non è possibile eseguire il Boxing.This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • Non include un Reset metodo, che può impostare l'enumeratore sulla relativa posizione iniziale prima del primo elemento nell'intervallo.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. Il IEnumerator.Reset() metodo deve essere implementato come parte dell'interfaccia, ma la maggior parte degli implementatori genera un'eccezione o non fornisce alcuna implementazione.(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

Proprietà

Current

Restituisce un riferimento all'elemento in corrispondenza della posizione corrente dell'enumeratore.Gets a reference to the item at the current position of the enumerator.

Metodi

MoveNext()

Sposta l'enumeratore all'elemento successivo dell'oggetto ReadOnlySpan<T>.Advances the enumerator to the next item of the ReadOnlySpan<T>.

Si applica a