IDTSInputColumnCollection100.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 は設定された要素を返します。列挙子がすでに無効になっていてもです。
列挙子は、コレクションへの排他的アクセス権を持っていません。したがって、コレクションを通じた列挙は、本質的にスレッド セーフなプロシージャではありません。 コレクションが同期されている場合でも、他のスレッドはコレクションを変更できるため、列挙子は例外をスローします。 列挙中のスレッド セーフを保証するには、列挙全体の間にコレクションをロックするか、他のスレッドによって行われた変更によって発生する例外をキャッチします。