ReadOnlySpan<T>.Enumerator Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет перечислитель для элементов объекта ReadOnlySpan<T>.
public: value class ReadOnlySpan<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IEnumerator
interface IDisposable
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Implements IEnumerator(Of T)
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<T> не реализует IEnumerator интерфейс. Это связано с тем, что ReadOnlySpan<T>.Enumerator это структура ссылок и не может быть боксирована.
Не включает метод, который может задать перечислителю начальную
Resetпозицию перед первым элементом в диапазоне. (Метод IEnumerator.Reset() должен быть реализован как часть интерфейса, но большинство реализутелей либо вызывают исключение, либо не предоставляют реализацию.)
Свойства
| Имя | Описание |
|---|---|
| Current |
Возвращает ссылку на элемент в текущей позиции перечислителя. |
Методы
| Имя | Описание |
|---|---|
| MoveNext() |
Перемещает перечислитель к следующему элементу ReadOnlySpan<T>элемента . |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов. |
| IEnumerator.Current |
Возвращает элемент в коллекции в текущей позиции перечислителя. |
| IEnumerator.Reset() |
Задает перечислителю начальную позицию, которая перед первым элементом в коллекции. |
| IEnumerator<T>.Current |
Возвращает элемент в коллекции в текущей позиции перечислителя. |