ReadOnlySpan<T>.Enumerator 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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とVisual BasicのFor Each...Next構造は、列挙子の複雑さを隠します。 列挙子を直接操作するのではなく、foreach
またはFor Each...Next
を使用することをお勧めします。
初期状態で、列挙子はReadOnlySpan<T>内の最初の要素の前に配置されます。 この位置では、Current が未定義です。 Currentの値を読み取る前に、MoveNextを呼び出し、列挙子をReadOnlySpan<T>の最初の項目に進める必要があります。
MoveNextが呼び出されるまで、Current は同じ値を返します。 MoveNextは、CurrentをReadOnlySpan<T>の次の項目に設定します。
MoveNextがReadOnlySpan<T>の末尾を超えた場合、MoveNextはfalse
を返します。 列挙子がこの状態にある場合、MoveNextの後続の呼び出しもfalse
を返し、Currentは未定義になります。
Currentに再度ReadOnlySpan<T>の最初の項目を設定することはできません。列挙子の新しいインスタンスを代わりに作成する必要があります。
ReadOnlySpan<T>はスタックに割り当てられますが、ReadOnlySpan<T>の指す基底データはそうでない可能性があります。 そのため、ReadOnlySpan<T>の列挙処理は、本質的にはスレッド セーフな手順ではありません。 列挙中にスレッド セーフを保証するには、独自の同期を実装する必要があります。
ReadOnlySpan<T>.Enumeratorは、.NETの他の列挙子構造体とは異なります。
IEnumeratorまたはIEnumerator<T>インターフェイスを実装しません。 これは、ReadOnlySpan<T>.Enumeratorがref 構造体であり、ボックス化できないためです。
列挙子をスパン内の最初の要素より前の初期位置に設定する、
Reset
メソッドは含まれません。 (IEnumerator.Reset()メソッドは、インターフェイスの一部として実装する必要がありますが、ほとんどの実装が例外をスローするか、実装されていません。)
プロパティ
Current |
列挙子の現在位置にある項目への参照を取得します。 |
メソッド
MoveNext() |
列挙子を ReadOnlySpan<T> の次の項目に進めます。 |
適用対象
.NET