ActivityCollection.GetEnumerator 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
實作 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。 如果在 MoveNext 和 Current 之間修改集合,Current 將傳回所設定的元素,即使列舉值已經無效。
列舉程式沒有集合的獨佔存取權,因此,列舉集合內容本質上並不是安全的執行緒程序。 即使當集合同步化時,其他執行緒仍然可以修改集合。 這會造成列舉值引發例外狀況。 若要保證列舉過程的執行緒安全,您可以在整個列舉過程中鎖定集合,或攔截由其他執行緒的變更所造成的例外狀況。