IDTSOutputColumnCollection100.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。
実装
- 属性
注釈
列挙子は、コレクションのデータの読み取りのみを許可します。 列挙子を使用して、基になるコレクションを変更することはできません。
最初、列挙子はコレクションの先頭の要素の前に位置付けられます。 また、Reset
メソッドは、列挙子を最初の位置に戻します。 この位置で Current
を呼び出すと、例外がスローされます。 そのため、MoveNext
の値を読み取る前に、Current
を呼び出して列挙子をコレクションの最初の要素に進める必要があります。
Current
は、MoveNext
または Reset
が呼び出されるまでは同じオブジェクトを返します。 MoveNext
は、Current
を次の要素に進めます。
列挙子は、コレクションの末尾を越えると、コレクションの最後の要素の後に位置付けられるので、MoveNext
を呼び出すと false
が返されます。 前回 MoveNext
を呼び出して false
が返された場合に、Current
を呼び出すと例外がスローされます。 コレクションの先頭の要素に再び Current
を設定するには、先に Reset
を呼び出してから MoveNext
を呼び出します。
列挙子は、コレクションが変更されない限り有効です。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は回復不能に無効になり、次の呼び出し MoveNext
または Reset
スロー InvalidOperationException
が行われます。 MoveNext
を呼び出してから Current
を呼び出すまでの間にコレクションが変更された場合、列挙子が既に無効になっていても、Current
は、設定されている要素を返します。
列挙子はコレクションに排他アクセスできないため、コレクションの列挙処理は本質的にスレッド セーフな処理ではありません。 コレクションが同期されていても、他のスレッドがコレクションを変更する場合があり、このときは列挙子から例外がスローされます。 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。