W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
屬性從外部看起來像字段,但在內(nèi)部它們包含邏輯。
一個屬性被聲明為一個字段,但是添加了一個get / set塊。
以下是如何實(shí)現(xiàn)CurrentPrice作為屬性:
public class Product {
decimal currentPrice; // The private "backing" field
public decimal CurrentPrice // The public property
{
get {
return currentPrice;
}
set {
currentPrice = value;
}
}
}
get
和 set
是屬性訪問器。
讀取屬性時,get訪問器運(yùn)行。它必須返回屬性類型的值。
在賦值屬性時,集合訪問器運(yùn)行。
它有一個屬性類型的名為value的隱式參數(shù),通常分配給一個私有字段。
我們可以編寫屬性的代碼來控制獲取和設(shè)置其值。
屬性允許以下修飾符:
項(xiàng)目 | 修飾符 |
---|---|
修飾符... | static |
訪問修飾符 | public internal private protected |
繼承修飾符 | new virtual abstract override sealed |
非托管代碼修飾符 | unsafe extern |
如果屬性僅指定get訪問器,那么該屬性是只讀的。
如果一個屬性只指定一個集合訪問器,則該屬性是只寫的。
屬性通常具有專用的備份字段以存儲基礎(chǔ)數(shù)據(jù)。
然而,也可以從其他數(shù)據(jù)計(jì)算屬性。例如:
decimal currentPrice, sharesOwned;
public decimal Worth {
get { return currentPrice * sharesOwned; }
}
自動屬性聲明指示編譯器提供實(shí)現(xiàn)。
我們可以重新聲明本節(jié)中的第一個示例如下:
public class Product
{
public decimal CurrentPrice { get; set; }
}
編譯器自動生成無法引用的編譯器生成的名稱的私有備用字段。
如果要將屬性以只讀方式公開給其他類型,則可以將集合訪問器標(biāo)記為private。
get和set訪問器可以有不同的訪問級別。
public class Product {
private decimal x;
public decimal X{
get {
return x;
}
private set {
x = Math.Round (value, 2);
}
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: