clr支援靜態、例項、抽象和虛屬性。屬性可以使用任意可訪問性修飾符修飾。
屬性不能過載。也就是說不能定義名稱相同,型別不同的屬性。
定義屬性時,取決屬性的定義,編譯器在最後的託管程式集中生成以下兩項或三項:
*)代表屬性的get訪問器方法的乙個方法。僅在屬性定義了get訪問器方法時生成。
*) 代表屬性的set訪問器方法的乙個方法。僅在屬性定義了set訪問器方法時生成。
*)託管程式集元資料中的乙個屬性定義。這一項是肯定要生成的。
屬性和字段的比較:
1) 屬性可以是唯讀或只寫的,字段訪問確總是可讀和可寫。如果定義乙個屬性,最好同時為它提供get和set訪問器方法。
2) 乙個屬性方法可能丟擲異常;字段訪問永遠不會丟擲異常。
3) 屬性不能作為out或ref引數傳給方法;欄位卻可以。
4)屬性方法可能花費較長時間執行;欄位的訪問總是立即完成的。
5)如果連續多次呼叫,屬性方法每次都可能返回乙個不同的值;而字段每次呼叫都返回相同的值。
6)屬性方法可能造成明顯的side effect(指訪問屬性時,除了單純的設定或獲取屬性,還會造成物件狀態的改變);字段訪問永遠不會。
7)屬性方法可能需要額外的記憶體,或者返回乙個不正確的引用,指向不屬於物件狀態一部分的某個東西,這樣一來,對返回物件的修改就作用不到原始物件身上了。相反,查詢字段返回的總是正確的引用,它指向的東西保證是原始物件狀態的一部分。
wpf 依賴屬性和附加屬性
原文 wpf 依賴屬性和附加屬性 1 依賴屬性 解釋 依賴屬性是配合binding出現的產物,功能主要是配合binding。作用 一 當自定義usercontrol時,需要與宿主 父窗體 雙向繫結值時,用到依賴屬性。2 附加屬性 解釋 附加屬性是配合控制項或自定義型別出現的產物 作用 1 主要是擴充...
wpf 依賴屬性和附加屬性
1 依賴屬性 解釋 依賴屬性是配合binding出現的產物,功能主要是配合binding。作用 一 當自定義usercontrol時,需要與宿主 父窗體 雙向繫結值時,用到依賴屬性。2 附加屬性 解釋 附加屬性是配合控制項或自定義型別出現的產物 作用 1 主要是擴充套件控制項時用的較多,比如擴充套件...
WPF 依賴屬性和附加屬性
依賴屬性 依賴屬性就是自己沒有值,通過binding從資料來源獲得值,就是依賴在別人身上,擁有依賴屬性的物件稱為依賴物件。依賴屬性的值存在 在wpf執行時,維護了乙個全域性的hashtable訪問依賴屬性的值。二 附加屬性 附加屬性就是自己沒有這個屬性,在某些上下文中需要就被附加上去。比如textb...