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)

傳回

IEnumerator<Activity>

可逐一查看 ReadOnlyCollectionBase 執行個體的列舉程式。

實作

備註

列舉值只能夠讀取集合中的資料。 您無法使用列舉值修改基礎集合。

一開始,列舉值是位於集合中的第一個項目之前。 Reset 也會將列舉值帶回至這個位置。 在這個位置上,呼叫 Current 會引發例回狀況。 因此,在讀取 MoveNext 的值之前,必須呼叫 Current 以將列舉值前移至集合的第一個項目。

Current 會傳回相同的物件直到呼叫 MoveNextResetMoveNext 會將 Current 設定為下一個項目。

在超過集合的末端後,列舉值會放置在集合最後一個元素之後,並且呼叫 MoveNext 會傳回 false。 如果上一次的 MoveNext 呼叫傳回 false,則呼叫 Current 會引發例外狀況。

若要再次將 Current 設定為集合的第一個元素,您可以在呼叫 Reset 之後,接著呼叫 MoveNext

只要集合維持不變,列舉值就仍維持有效。 如果集合有任何變更,例如加入、修改或刪除元素,列舉值將失效而無法復原,而且下次呼叫 MoveNextReset 時,將引發 InvalidOperationException。 如果在 MoveNextCurrent 之間修改集合,Current 將傳回所設定的元素,即使列舉值已經無效。

列舉程式沒有集合的獨佔存取權,因此,列舉集合內容本質上並不是安全的執行緒程序。 即使當集合同步化時,其他執行緒仍然可以修改集合。 這會造成列舉值引發例外狀況。 若要保證列舉過程的執行緒安全,您可以在整個列舉過程中鎖定集合,或攔截由其他執行緒的變更所造成的例外狀況。

適用於