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