標籤:style blog color 資料 代碼 div ar new
根據屬性的實現方式,屬性可分為自動實作屬性和常規屬性。
常規屬性需要具體的人為的實現get訪問器或者set訪問器,而且一般需要有一個欄位與之相對應;而自動實作屬性的get和set訪問器的實現部分被省略掉了,而且代碼中不需要有相對應的欄位。
常規屬性:
public class Person { //----------------------- //普通屬性 //----------------------- private string name; /// <summary>姓名</summary> public string Name { get { return this.name; } set { this.name = value; } } }
自動實作屬性:
public class Person { //----------------------- //自動實作屬性 //----------------------- /// <summary>姓名</summary> public string Name { get; set; } }
可以給自動實作屬性的get訪問器或者set訪問器添加存取權限修飾符(private,protected,internal),以控制該屬性的存取權限。
(*注意給get或者set訪問器添加的存取權限修飾符的存取權限,必須比該屬性整體的訪問屬性的存取權限要小)
通過給get或者set訪問器添加的存取權限修飾符,實現唯讀或者唯寫:
public class Person { //----------------------- //自動實作屬性實現唯讀 //----------------------- /// <summary>姓名</summary> public string Name { get; private set; } }
public class Person { //----------------------- //自動實作屬性實現唯寫 //----------------------- /// <summary>姓名</summary> public string Name { private get; set; } }
自動實作屬性有以下幾點需要注意:
①必須同時實現set訪問器和get訪問器,缺一不可;
②自動實作屬性,編譯器在運行時會自動產生一個私人的欄位,這個自動產生的欄位不能夠直接存取;
③當需要實現對資料的合法性驗證或者其它特殊處理的時候不能用自動實作屬性。