同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 C#中字段和屬性的區(qū)別 .

C#中字段和屬性的區(qū)別 .

來源: | 時(shí)間:2013/6/10 23:50:26 |

在C#中,我們可以非常自由的、毫無限制的訪問公有字段,但在一些場(chǎng)合中,我們可能希望限制只能給字段賦于某個(gè)范圍的值、或是要求字段只能讀或只能寫,或是在改變字段時(shí)能改變對(duì)象的其他一些狀態(tài),這些單靠字段是無法做到的,于是就有了屬性,屬性中包含兩個(gè)塊:set和get,set塊負(fù)責(zé)屬性的寫入工作,get塊負(fù)責(zé)屬性的讀取工作。在兩個(gè)塊中都可以做一些其他操作,如在set中驗(yàn)證賦的值是否符合要求并決定是否進(jìn)行賦值。當(dāng)缺少其中一塊時(shí)屬性就只能讀或只能寫,set和get塊中屬性必需有一個(gè),因?yàn)榧床荒茏x又不能寫的屬性是沒有意義的。

 

程序代碼
//私有字段
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; }
}
//可檢測(cè)賦值是否正確
public int c
{
set
{
if (value >= 1 && value <= 10)
_c = value;
else
throw new Exception("c的賦值范圍[1,10]");
}
}
//賦值時(shí)更改其他狀態(tài)
public int d
{
set
{
_d = value;
_b = true;//改變了_b的值
}
get { return _d; }
}

從例子中可看到屬性其實(shí)就是對(duì)私有字段的讀取和寫入,以便做些公有字段無法完成的任務(wù),他的使用方式和公有字段完全一樣,所以可以理解成屬性是為了滿足對(duì)公有字段的特殊需求而產(chǎn)生的附屬品。因而當(dāng)我們選擇使用屬性還是使用字段時(shí),主要看需求,如果不需設(shè)置訪問權(quán)限、不需在賦值時(shí)檢測(cè)值是否滿足要求、不需要在賦值時(shí)修改對(duì)象其他一些狀態(tài)等特殊的需求時(shí),使用公有字段即可,否則就使用屬性。
 

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)