ReadOnlySpan<T>.Enumerator Estructura
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona un enumerador para los elementos de 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
Parámetros de tipo
- T
- Herencia
Comentarios
El elemento foreach de C# del lenguaje C# y for Each... La siguiente construcción de Visual Basic oculta la complejidad de los enumeradores. En lugar de manipular directamente el enumerador, se recomienda usar foreach
o For Each...Next
.
Inicialmente, el enumerador se coloca antes del primer elemento de ReadOnlySpan<T>. En esta posición, el valor de propiedad Current está sin definir. Debe llamar MoveNext a para avanzar el enumerador al primer elemento de ReadOnlySpan<T> antes de leer el valor de Current.
Current devuelve el mismo valor hasta MoveNext que se llama a . MoveNextestablece Current en el siguiente elemento de .ReadOnlySpan<T>
Si MoveNext pasa el final de ReadOnlySpan<T>, MoveNext devuelve false
. Cuando el enumerador está en este estado, las llamadas posteriores a MoveNext también devuelven false
y Current no están definidas. No se puede establecer Current en el primer elemento de ReadOnlySpan<T> nuevo; en su lugar, debe crear una nueva instancia del enumerador.
Aunque se asigna en ReadOnlySpan<T> la pila, es posible que no estén los datos subyacentes a los ReadOnlySpan<T> que apunta. Por lo tanto, la enumeración a través de no ReadOnlySpan<T> es intrínsecamente un procedimiento seguro para subprocesos. Para garantizar la seguridad de los subprocesos durante la enumeración, debe implementar su propia sincronización.
A diferencia de otras estructuras de enumerador en .NET, :ReadOnlySpan<T>.Enumerator
No implementa la IEnumerator interfaz o IEnumerator<T> . Esto se debe a que ReadOnlySpan<T>.Enumerator es una estructura de referencia y no se puede boxear.
No incluye un
Reset
método , que puede establecer el enumerador en su posición inicial antes del primer elemento del intervalo. (El IEnumerator.Reset() método debe implementarse como parte de la interfaz, pero la mayoría de los implementadores inician una excepción o no proporcionan ninguna implementación).
Propiedades
Current |
Obtiene una referencia al elemento en la posición actual del enumerador. |
Métodos
MoveNext() |
Desplaza el enumerador al siguiente elemento de ReadOnlySpan<T>. |