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
- Наследование
Комментарии
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>. |