屬性的訪問器包含與獲取(讀取或計算)或設置(寫)屬性有關的可執行語句。訪問器聲明可以包含 get 訪問器或 set 訪問器,或者兩者均包含。聲明采用下列形式之一:
get {}
set {}
get 訪問器
get 訪問器體與方法體相似。它必須返回屬性類型的值。執行 get 訪問器相當於讀取字段的值。以下是返回私有字段 name 的值的 get 訪問器:
private string name; // the name fIEld
public string Name // the Name property
{
get
{
return name;
}
}
當引用屬性時,除非該屬性為賦值目標,否則將調用 get 訪問器讀取該屬性的值。例如:
Employee e1 = new Employee();
...
Console.Write(e1.Name); // The get Accessor is invoked here
get 訪問器必須在 return 或 throw 語句中終止,並且控制不能超出訪問器體。
set 訪問器
set 訪問器與返回 void 的方法類似。它使用稱為 value 的隱式參數,此參數的類型是屬性的類型。在下例中,set 訪問器被添加到 Name 屬性:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
當對屬性賦值時,用提供新值的參數調用 set 訪問器。例如:
e1.Name = "Joe"; // The set Accessor is invoked here
在 set 訪問器中對局部變量聲明使用隱式參數名 (value) 是錯誤的。
備注
屬性按如下方式,根據所使用的訪問器進行分類:
只帶有 get 訪問器的屬性稱為只讀屬性。無法對只讀屬性賦值。
只帶有 set 訪問器的屬性稱為只寫屬性。只寫屬性除作為賦值的目標外,無法對其進行引用。
同時帶有 get 和 set 訪問器的屬性為讀寫屬性。
在屬性聲明中,get 和 set 訪問器都必須在屬性體的內部聲明。