Int16KeyFrameCollection.GetEnumerator メソッド

定義

このコレクションを反復処理できる列挙子を返します。

public:
 virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator

戻り値

コレクションを繰り返し処理できる IEnumerator です。

実装

注釈

列挙子は、コレクションのデータの読み取りのみを許可します。 列挙子を使用して、基になるコレクションを変更することはできません。

最初は、列挙子はコレクション内の最初の項目の前に配置されます。 また、Reset メソッドは、列挙子を最初の位置に戻します。 この位置で Current を呼び出すと、例外がスローされます。 したがって、 の値を読み取る前に、 を呼び出 MoveNext して列挙子をコレクションの最初の Current項目に進める必要があります。

Current は、MoveNext または Reset が呼び出されるまでは同じオブジェクトを返します。 MoveNext は次の項目に設定 Current されます。

コレクションの末尾が渡されると、列挙子はコレクション内の最後の項目の後に配置され、 を呼び出すと MoveNext が返されます false。 前回 MoveNext を呼び出して false が返された場合に、Current を呼び出すと例外がスローされます。 コレクションの最初の項目にもう一度設定Currentするには、 を呼び出してから をMoveNext呼び出Resetします。

列挙子は、コレクションが変更されない限り有効です。 項目の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は回復不能に無効になり、次の を呼び出すかResetInvalidOperationExceptionMoveNextスローします。 と CurrentCurrent の間MoveNextでコレクションが変更された場合、列挙子が既に無効になっている場合でも、設定されている項目が返されます。

列挙子はコレクションに排他アクセスできないため、コレクションの列挙処理は本質的にスレッド セーフな処理ではありません。 コレクションが同期されている場合でも、他のスレッドがコレクションを変更する場合があるため、列挙子が例外をスローする原因になります。 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。

適用対象