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

Определение

Предоставляет перечислитель для элементов 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

Параметры типа

T
Наследование
ReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.Enumerator

Комментарии

C# foreach языка C# и для каждого... Далее конструкция в Visual Basic скрывает сложность перечислителей.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. Вместо непосредственного использования перечислителя, с помощью foreach или For Each...Next рекомендуется.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Изначально перечислитель располагается перед первым элементом в ReadOnlySpan<T>.Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. В этой позиции значение свойства Current не определено.At this position, Current is undefined. Необходимо вызвать MoveNext Чтобы переместить перечислитель к первому элементу в ReadOnlySpan<T> до считывания значения свойства Current.You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

Current Возвращает значение до MoveNext вызывается.Current returns the same value until MoveNext is called. MoveNext Задает Current к следующему элементу в ReadOnlySpan<T>.MoveNext sets Current to the next item in the ReadOnlySpan<T>.

Если MoveNext выходит за границы ReadOnlySpan<T>, MoveNext возвращает false.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Когда перечислитель находится в этом состоянии, последующие вызовы MoveNext также возвращать false и Current не определено.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Невозможно задать Current к первому элементу в ReadOnlySpan<T> снова; вместо этого следует создать новый экземпляр перечислителя.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

Хотя ReadOnlySpan<T> выделена в стеке базовых данных, на котором ReadOnlySpan<T> точек, может быть.Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. Таким образом, перечисление ReadOnlySpan<T> само по себе не является потокобезопасной процедурой.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. Для обеспечения потокобезопасности при перечислении, необходимо реализовать собственную синхронизацию.To guarantee thread safety during enumeration, you must implement your own synchronization.

В отличие от некоторых других структур перечислитель в .NET ReadOnlySpan<T>.Enumerator:Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • Не реализует IEnumerator или IEnumerator<T> интерфейс.Does not implement the IEnumerator or IEnumerator<T> interface. Это обусловлено ReadOnlySpan<T>.Enumeratorструктура ссылки и не могут быть упакованы.This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • Не включает Reset метод, который можно задать перечислитель в исходное положение перед первым элементом в элементе управления span.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. ( IEnumerator.Reset() Метод должен быть реализован как часть интерфейса, но большинство средства реализации исключение или нет реализации.)(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

Свойства

Current Current Current Current

Возвращает ссылку на элемент в текущей позиции перечислителя.Gets a reference to the item at the current position of the enumerator.

Методы

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

Перемещает перечислитель к следующему элементу ReadOnlySpan<T>.Advances the enumerator to the next item of the ReadOnlySpan<T>.

Применяется к