ActivityCollection.GetEnumerator メソッド

定義

ICollectionへの列挙インターフェイスを実装します。

public:
 System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> GetEnumerator();
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Public Function GetEnumerator () As IEnumerator(Of Activity)

返品

ReadOnlyCollectionBase インスタンスを反復処理できる列挙子。

実装

注釈

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

最初に、列挙子はコレクション内の最初の要素の前に配置されます。 Reset また、列挙子をこの位置に戻します。 この位置で、 Current を呼び出すと例外が発生します。 したがって、MoveNextの値を読み取る前に、Currentを呼び出して列挙子をコレクションの最初の要素に進める必要があります。

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

コレクションの末尾が渡されると、列挙子はコレクション内の最後の要素の後に配置され、 MoveNext を呼び出すと falseが返されます。 MoveNextの最後の呼び出しがfalse返された場合、Currentを呼び出すと例外が発生します。

Currentをコレクションの最初の要素に再度設定するには、Resetを呼び出し、その後にMoveNextを呼び出します。

列挙子は、コレクションが変更されない限り有効なままです。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は元に戻せないほど無効になり、次に MoveNext または Reset 呼び出すと InvalidOperationException が発生します。 コレクションが MoveNextCurrentの間で変更された場合、列挙子が既に無効になっている場合でも、 Current は設定されている要素を返します。

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

適用対象