ReadOnlySpan<T>.Enumerator Структура

Определение

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

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

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

Комментарии

C# foreach языка C# и For Each... Следующая конструкция в Visual Basic скрывает сложность перечислителей. Вместо прямого управления перечислителем рекомендуется использовать foreach или For Each...Next использовать его напрямую.

Изначально перечислитель размещается перед первым элементом в элементе ReadOnlySpan<T>. В этой позиции значение свойства Current не определено. Перед чтением значения Currentнеобходимо вызвать MoveNext перечислитель к первому элементу.ReadOnlySpan<T>

Current возвращает то же значение до MoveNext вызова. MoveNext задает Current для следующего элемента в элементе ReadOnlySpan<T>.

Если MoveNext передает конец , ReadOnlySpan<T>MoveNext возвращается false. Если перечислитель находится в этом состоянии, последующие вызовы MoveNext также возвращаются false и Current не определено. Нельзя задать Current первый элемент снова ReadOnlySpan<T> . Вместо этого необходимо создать новый экземпляр перечислителя.

Несмотря на то, что он ReadOnlySpan<T> выделяется в стеке, базовые данные, на которые ReadOnlySpan<T> указывают точки, могут не быть. Таким образом, перечисление через ReadOnlySpan<T> не является потокобезопасной процедурой. Чтобы гарантировать безопасность потоков во время перечисления, необходимо реализовать собственную синхронизацию.

В отличие от некоторых других структур перечислителя в .NET, :ReadOnlySpan<T>.Enumerator

  • Не реализует IEnumerator интерфейс или IEnumerator<T> интерфейс. Это связано с тем, что ReadOnlySpan<T>.Enumerator является структурой ссылок и не может быть упакована.

  • Не включает метод, который может задать перечислителю начальную Reset позицию перед первым элементом в диапазоне. (Метод IEnumerator.Reset() должен быть реализован как часть интерфейса, но большинство реализаций либо вызывают исключение, либо не предоставляют реализацию.)

Свойства

Current

Возвращает ссылку на элемент в текущей позиции перечислителя.

Методы

MoveNext()

Перемещает перечислитель к следующему элементу ReadOnlySpan<T>.

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