close

以下內容大部分取自MSDN
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.cht/fxref_mscorlib/html/8cf32466-55b9-e0bf-37eb-39af84aa3021.htm

IEnumerator 是所有非泛型列舉值的基底介面。

任何實做此類別的物件才能使用foreach來列舉,列舉值可以用來讀取集合中的資料,但是無法用來修改基礎集合。

列舉可以想像成是間隔與間隔中間的指示牌,利用指示牌來指出物件串列中,目前所在(Current)的是哪個物件,並可以往下前進(MoveNext)。任何物件都必須實做IEnumerator和IEnumerable的兩個介面,其中實做IEnumerable是物件序列,必須實做GetEnumerator()回傳實做IEnumerator的物件來進行列舉。

列舉值沒有集合的獨佔存取權,因此,列舉一個集合在本質上並不是執行緒安全的程序。即使集合經過同步化,其他的執行緒仍可修改該集合,使列舉值擲回例外狀況。若要保證列舉過程的執行緒安全,您可以在整個列舉過程中鎖定集合,或攔截由其他執行緒的變更所造成的例外狀況。

arrow
arrow
    全站熱搜

    give 發表在 痞客邦 留言(0) 人氣()