字段用于直接存取数据,而属性本身不能够直接存取数据,它相当于包裹在字段外的一层壳,用于对其内部字段的访问进行权限控制。
这句话又怎么去理解?打个比方,假设“水”代表数据,“杯子”代表字段,“保险箱”代表属性。
<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 均为访问修饰符,提供字段或属性的外界访问权限。