封裝屬性
自動使用get 標識符進行讀
自動使用set 標識符進行寫
代碼示例:
struct Time
{
...
public int Hour //沒有(),是H而不是h
{
get { ... }
set { ... }
}
private int hour, minute, second;
}
Time lunch = new Time();
...
lunch.Hour = 12;
...
Console.WriteLine(lunch.Hour); www.2cto.com
C#提供了一個解決上述問題的好辦法。你可以把get和set函數組合成一個簡單的屬性。屬性的聲明包括一個可選的訪問修飾符(在例子中是public)、返回值(int)、屬性的名字(Hour)和一個包含get和set語句的屬性體。特別要注意的是屬性沒有括號,因為屬性不是函數。屬性的命名規則應符合一般的命名規則,即公有的使用PascalCase規則,而非公有的使用camelCase規則。在上面的例子中,Hour屬性是公有的,所以命名為Hour而不是hour。
例子中演示了屬性的用法。屬性使用的語法和字段的一樣,沒有括號。如果你要寫一個屬性,那你可以這樣寫:
lunch.Hour = 12;
屬性的set語句自動被執行。
如果你要讀一個屬性,你可以這樣寫:
int hour = lunch.Hour;
屬性的get語句自動被執行