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を返すこともfalseCurrentが定義されていません。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は、 ref 構造体とボックス化することはできません。This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • 含まれません、Resetメソッドは、最初の要素の前に初期位置、範囲内に列挙子を設定することができます。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>.

適用対象