IDTSCustomPropertyCollection100.GetEnumerator メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public:
System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator ();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
戻り値
カスタム プロパティのコレクションを繰り返し処理できる IEnumerator です。
実装
- 属性
注釈
列挙子は、コレクションのデータの読み取りのみを許可します。 列挙子を使用して、基になるコレクションを変更することはできません。
最初、列挙子はコレクションの先頭の要素の前に位置付けられます。 リセット では、列挙子もこの位置に戻ります。 この位置で、 Current を呼び出すと例外がスローされます。 したがって、Current の値を読み取る前に、MoveNext を呼び出して列挙子をコレクションの最初の要素に進める必要があります。
Current は 、MoveNext または Reset が呼び出されるまで、同じオブジェクト を 返します。 MoveNext はCurrent を次の要素に設定します。
コレクションの末尾が渡されると、列挙子はコレクション内の最後の要素の後に配置され、 MoveNext を呼び出すと false が返されます。 MoveNext の最後の呼び出しが false を返した場合、Current を呼び出すと例外がスローされます。 Current をコレクションの最初の要素に再び設定するには、Reset の後に MoveNext を呼び出します。
列挙子は、コレクションが変更されない限り有効です。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は回復不能に無効になり、 MoveNext または Reset の次の呼び出しでは InvalidOperationException がスローされます。 MoveNext と Current の間でコレクションが変更された場合、列挙子が既に無効になっている場合でも、Current は設定されている要素を返します。
列挙子はコレクションに排他アクセスできないため、コレクションの列挙処理は本質的にスレッド セーフな処理ではありません。 コレクションが同期されていても、他のスレッドがコレクションを変更する場合があり、このときは列挙子から例外がスローされます。 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。