ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator Struct

Definición

Proporciona un enumerador para los elementos de 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

Parámetros de tipo

T
Herencia
ReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.Enumerator

Comentarios

El C# foreach del C# lenguaje y la instrucción for each... La siguiente construcción de Visual Basic oculta la complejidad de los enumeradores.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. En lugar de manipular directamente el enumerador, se foreach recomienda For Each...Next usar o.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Inicialmente, el enumerador se coloca delante del primer elemento de ReadOnlySpan<T>.Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. En esta posición, el valor de propiedad Current está sin definir.At this position, Current is undefined. Debe llamar MoveNext a para avanzar el enumerador hasta el primer elemento ReadOnlySpan<T> de antes de leer el valor Currentde.You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

CurrentDevuelve el mismo valor hasta MoveNext que se llama a.Current returns the same value until MoveNext is called. MoveNextestablece Current en el siguiente elemento ReadOnlySpan<T>de.MoveNext sets Current to the next item in the ReadOnlySpan<T>.

Si MoveNext pasa el final ReadOnlySpan<T>de, MoveNext devuelve false.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Cuando el enumerador está en este estado, las llamadas MoveNext subsiguientes Current a también devuelven false y no están definidas.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. No se puede Current establecer en el primer elemento del ReadOnlySpan<T> de nuevo; en su lugar, debe crear una nueva instancia de enumerador.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

Aunque se asigna en la pila, los datos subyacentes a los ReadOnlySpan<T> que apunta no pueden ser. ReadOnlySpan<T>Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. Por lo tanto, la enumeración de ReadOnlySpan<T> no es intrínsecamente un procedimiento seguro para subprocesos.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. Para garantizar la seguridad para subprocesos durante la enumeración, debe implementar su propia sincronización.To guarantee thread safety during enumeration, you must implement your own synchronization.

A diferencia de otras estructuras de enumerador en .NET ReadOnlySpan<T>.Enumerator,:Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • No implementa la IEnumerator interfaz o IEnumerator<T> .Does not implement the IEnumerator or IEnumerator<T> interface. Esto se debe ReadOnlySpan<T>.Enumerator a que es una estructura de referencia y no se puede aplicar a la conversión boxing.This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • No incluye un Reset método, que puede establecer el enumerador en su posición inicial delante del primer elemento del intervalo.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. (El IEnumerator.Reset() método debe implementarse como parte de la interfaz, pero la mayoría de los implementadores producen una excepción o no proporcionan ninguna implementación).(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

Propiedades

Current Current Current Current

Obtiene una referencia al elemento en la posición actual del enumerador.Gets a reference to the item at the current position of the enumerator.

Métodos

MoveNext() MoveNext() MoveNext() MoveNext()

Desplaza el enumerador al siguiente elemento de ReadOnlySpan<T>.Advances the enumerator to the next item of the ReadOnlySpan<T>.

Se aplica a