服務熱線
153 8323 9821
在C#中,我們可以非常自由的、毫無限制的訪問公有字段,但在一些場合中,我們可能希望限制只能給字段賦于某個范圍的值、或是要求字段只能讀或只能寫,或是在改變字段時能改變對象的其他一些狀態,這些單靠字段是無法做到的,于是就有了屬性,屬性中包含兩個塊:set和get,set塊負責屬性的寫入工作,get塊負責屬性的讀取工作。在兩個塊中都可以做一些其他操作,如在set中驗證賦的值是否符合要求并決定是否進行賦值。當缺少其中一塊時屬性就只能讀或只能寫,set和get塊中屬性必需有一個,因為即不能讀又不能寫的屬性是沒有意義的。
程序代碼
//私有字段
private int _a;
private bool _b;
private int _c;
private int _d;
//屬性:
//可讀寫
public int a
{
set { _a = value; }
get { return _a; }
}
//只讀
public bool b
{
get { return _b; }
}
//可檢測賦值是否正確
public int c
{
set
{
if (value >= 1 && value <= 10)
_c = value;
else
throw new Exception("c的賦值范圍[1,10]");
}
}
//賦值時更改其他狀態
public int d
{
set
{
_d = value;
_b = true;//改變了_b的值
}
get { return _d; }
}
從例子中可看到屬性其實就是對私有字段的讀取和寫入,以便做些公有字段無法完成的任務,他的使用方式和公有字段完全一樣,所以可以理解成屬性是為了滿足對公有字段的特殊需求而產生的附屬品。因而當我們選擇使用屬性還是使用字段時,主要看需求,如果不需設置訪問權限、不需在賦值時檢測值是否滿足要求、不需要在賦值時修改對象其他一些狀態等特殊的需求時,使用公有字段即可,否則就使用屬性。
上一篇:泛型Dictionary的用法
下一篇:經典SQL語句大全 .