StringKeyFrameCollection.GetEnumerator メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクションを反復処理できる列挙子を返します。
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 を呼び出すと例外がスローされます。 したがって、Currentの値を読み取る前に、MoveNextを呼び出して列挙子をコレクションの最初の項目に進める必要があります。
Current は、 MoveNext または Reset が呼び出されるまで、同じオブジェクトを返します。 MoveNext は、 Current を次の項目に設定します。
コレクションの末尾が渡されると、列挙子はコレクション内の最後の項目の後に配置され、 MoveNext 呼び出しは falseを返します。
MoveNextの最後の呼び出しがfalse返された場合、Current呼び出しは例外をスローします。
Currentをコレクションの最初の項目に再度設定するには、Resetを呼び出し、その後にMoveNextを呼び出します。
列挙子は、コレクションが変更されない限り有効なままです。 項目の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は回復不能に無効になり、次に MoveNext または Reset を呼び出すと、 InvalidOperationExceptionがスローされます。 コレクションが MoveNext と Currentの間で変更された場合、列挙子が既に無効になっている場合でも、 Current は設定されている項目を返します。
列挙子は、コレクションへの排他的アクセス権を持っていません。したがって、コレクションを通じた列挙は、本質的にスレッド セーフなプロシージャではありません。 コレクションが同期されている場合でも、他のスレッドがコレクションを変更して、列挙子が例外をスローする可能性があります。 列挙中のスレッド セーフを保証するには、列挙全体の間にコレクションをロックするか、他のスレッドによって行われた変更によって発生する例外をキャッチします。