public class Product {
decimal currentPrice; // The private "backing" field
public decimal CurrentPrice // The public property
{
get {
return currentPrice;
}
set {
currentPrice = value;
}
}
}
get 和 set 是屬性訪問器。
讀取屬性時,get訪問器運行。它必須返回屬性類型的值。
在賦值屬性時,集合訪問器運行。
它有一個屬性類型的名為value的隱式參數(shù),通常分配給一個私有字段。
我們可以編寫屬性的代碼來控制獲取和設(shè)置其值。
屬性允許以下修飾符:
項目
修飾符
修飾符...
static
訪問修飾符
public internal private protected
繼承修飾符
new virtual abstract override sealed
非托管代碼修飾符
unsafe extern
只讀和計算屬性
如果屬性僅指定get訪問器,那么該屬性是只讀的。
如果一個屬性只指定一個集合訪問器,則該屬性是只寫的。
屬性通常具有專用的備份字段以存儲基礎(chǔ)數(shù)據(jù)。
然而,也可以從其他數(shù)據(jù)計算屬性。例如:
decimal currentPrice, sharesOwned;
public decimal Worth {
get { return currentPrice * sharesOwned; }
}
自動屬性
自動屬性聲明指示編譯器提供實現(xiàn)。
我們可以重新聲明本節(jié)中的第一個示例如下:
public class Product
{
public decimal CurrentPrice { get; set; }
}
編譯器自動生成無法引用的編譯器生成的名稱的私有備用字段。
如果要將屬性以只讀方式公開給其他類型,則可以將集合訪問器標記為private。
獲取和設(shè)置輔助功能
get和set訪問器可以有不同的訪問級別。
public class Product {
private decimal x;
public decimal X{
get {
return x;
}
private set {
x = Math.Round (value, 2);
}
}
}
更多建議: