類成員—欄位和屬性的區別
阿新 • • 發佈:2019-02-14
欄位用於直接存取資料,而屬性本身不能夠直接存取資料,它相當於包裹在欄位外的一層殼,用於對其內部欄位的訪問進行許可權控制。
這句話又怎麼去理解?打個比方,假設“水”代表資料,“杯子”代表欄位,“保險箱”代表屬性。
<pre name="code" class="csharp"><span style="font-size:14px;">///<summary>
///公共欄位,可以被外界訪問和修改,如XXX.杯子 = '1升水'
///</summary>
public string 杯子 = "0.5升水";</span>
另一方面,你也可以把水存放在保險箱中的杯子裡,相關程式碼:
///<summary>
///私有欄位,外界無法訪問和修改
///</summary>
private string 杯子 = "0.5升水";
///<summary>
///公共屬性,外界可以通過該屬性訪問和修改“杯子的內容”,如XXX.保險箱 = "1升水"
public string 保險箱
{
get{return 杯子;}
set{杯子 = value;}
}
從上面的程式碼中,你會發現,水最終都是存放在杯子中的,只是屬性類似一個保險箱,為內部杯子提供一個訪問許可權,本身不儲存水,但能夠通過保險箱間接的把水存放到其內部指向的杯子中。
備註:private 和 public 均為訪問修飾符,提供欄位或屬性的外界訪問許可權。