次の方法で共有


SingleKeyFrameCollection.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

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

実装

注釈

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

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

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

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

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

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

適用対象