目前日期文章:200904 (2)

瀏覽方式: 標題列表 簡短摘要

以下內容大部分取自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的物件來進行列舉。

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

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

本文引用自 ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.cht/fxref_mscorlib/html/bc3d7d70-886c-6572-18cd-3e82f6aeeabe.htm

Attribute 類別會將預先定義的系統資訊或使用者定義的自訂資訊,與目標項目產生關聯。目標項目可為組件 (Assembly)、類別、建構函式 (Constructor)、委派 (Delegate)、列舉、事件、欄位、介面、方法、可移植執行檔案模組、參數、屬性 (Property)、傳回值、結構或其他屬性 (Attribute)

屬性提供的資訊也稱為中繼資料 (Metadata)應用程式可在執行階段檢查中繼資料,來控制程式處理資料的方式,也可以在執行階段前,利用外部工具,來控制應用程式如何對其本身進行處理或維護(補充1)。例如,.NET Framework 可預先定義並使用屬性型別來控制執行階段行為,部分程式語言則可使用屬性 (Attribute) 型別,來表示 .NET Framework 一般型別系統未直接支援的語言功能。

所有屬性 (Attribute) 型別都是直接或間接衍生自 Attribute 類別。屬性 (Attribute) 可以套用至任何目標項目;多個屬性 (Attribute) 可以套用至同一個目標項目;衍生自目標項目的項目可以繼承屬性 (Attribute)。請使用 AttributeTargets 類別,指定要套用屬性的目標項目。

Attribute 類別包含便於擷取及測試自訂屬性 (Attribute) 的方法。如需屬性用法的詳細資訊,請參閱使用屬性擴充中繼資料(MSDN)。

 

補充1: 為什麼可以達成這樣,可參考範例中建立屬性的方法。每個套用的屬性在使用前都會經過屬性物件的包裹再執行原程式,這包裹的過程可以對目標物件進行處理。

 

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