Transform3DCollection.GetEnumerator 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回可逐一查看集合的列舉值。
public:
System::Windows::Media::Media3D::Transform3DCollection::Enumerator GetEnumerator();
public System.Windows.Media.Media3D.Transform3DCollection.Enumerator GetEnumerator();
member this.GetEnumerator : unit -> System.Windows.Media.Media3D.Transform3DCollection.Enumerator
Public Function GetEnumerator () As Transform3DCollection.Enumerator
傳回
一個可以迭代集合的列舉器。
備註
列舉器僅允許讀取集合中的資料。 列舉器無法用來修改底層集合。
最初,列舉器會被放置在集合中第一個項目之前。 同時也讓普查員回到這個位置。 在這個位置,叫喊 Current 會拋出例外。 因此,您必須先致電 MoveNext 將列舉員推進到集合的第一個項目,才能讀取 Current 的值。
Current 會回傳相同的物件,直到被呼叫 MoveNext 或 Reset 為止。 MoveNext 將 Current 設定為下一個項目。
集合結束後,列舉器會被置於集合中最後一個項目之後,呼叫 MoveNext 則回傳 false。 如果最後一次呼叫 MoveNext 回傳 false,呼叫 Current 會拋出例外。 要將 Current 重新設定為集合的第一個項目,你可以先呼叫 Reset,接著是 MoveNext。
只要集合未曾改變,列舉器仍然有效。 若對集合進行變更,例如新增、修改或刪除項目,列舉器將無法恢復地失效,下一次呼叫 MoveNext 或 Reset 會拋出 InvalidOperationException。 如果集合在 MoveNext 和 Current 之間被修改,Current 會回傳它設定的項目,即使列舉器已經失效。
列舉值沒有集合的獨佔存取權;因此,透過集合列舉本質上不是安全線程的程式。 即使某個集合已同步,其他執行緒仍可能修改該集合,導致列舉器拋出例外。 若要保證列舉期間的線程安全性,您可以在整個列舉期間鎖定集合,或攔截其他線程所做的變更所產生的例外狀況。