ObjectKeyFrameCollection.GetEnumerator 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回可逐一查看這個集合的列舉程式。
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
傳回
可逐一查看集合的 IEnumerator。
實作
備註
列舉值只允許讀取集合中的資料。 列舉值無法用來修改基礎集合。
一開始,列舉值會放在集合中的第一個專案之前。 Reset 也會將列舉值帶回至這個位置。 在此位置,呼叫 Current 會擲回例外狀況。 因此,您必須呼叫 MoveNext ,才能將列舉值前進至集合的第一個專案,然後再讀取 的值 Current 。
Current 會傳回相同的物件直到呼叫 MoveNext 或 Reset。 MoveNext 會設定 Current 為下一個專案。
傳遞集合結尾之後,列舉值會放置在集合的最後一個專案後面,而呼叫 會傳 MoveNext false
回 。 如果最後一 MoveNext 次呼叫傳 false
回 ,則呼叫 Current 會擲回例外狀況。 若要再次設定 Current 為集合的第一個專案,您可以呼叫 Reset 後面接著 MoveNext 。
只要集合維持不變,列舉值就仍維持有效。 如果對集合進行變更,例如新增、修改或刪除專案,列舉值會無法復原,而下一次 InvalidOperationException 呼叫 MoveNext 或 Reset 會擲回 。 如果在 和 Current 之間 MoveNext 修改集合, Current 即使列舉值已經失效,也會傳回它設定為的專案。
列舉程式沒有集合的獨佔存取權,因此,列舉集合內容本質上並不是安全的執行緒程序。 即使同步處理集合,其他執行緒仍可修改集合,這會導致列舉值擲回例外狀況。 若要保證列舉過程的執行緒安全,您可以在整個列舉過程中鎖定集合,或攔截由其他執行緒的變更所造成的例外狀況。