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 為下一個元素。
在集合結束後,列舉器會被置於集合的最後一個元素之後,呼叫 MoveNextfalse返回 。 若最後一次呼叫MoveNext回傳falseCurrent,則呼叫會產生例外。
若要再次設定 Current 為集合的第一個元素,你可以呼叫 Reset ,接著 MoveNext。
只要集合未曾改變,列舉器仍然有效。 若對集合進行變更,例如新增、修改或刪除元素,列舉子將不可逆地失效,下一次呼叫MoveNextReset或提出 InvalidOperationException 。 若集合在與MoveNextCurrent之間Current被修改,則會回傳該集合所設定的元素,即使列舉器已失效。
列舉值沒有集合的獨佔存取權;因此,透過集合列舉本質上不是安全線程的程式。 即使集合已同步,其他執行緒仍可能修改該集合。 這會促使列舉器提出例外。 若要保證列舉期間的線程安全性,您可以在整個列舉期間鎖定集合,或攔截其他線程所做的變更所產生的例外狀況。