注意與抽象屬性的區別
abstract class people
{
public abstract string Name { get; set; }
public abstract int Age { get; set; }
}
不能定義只讀或者只寫的屬性,必須同時提供
請看上面Employee。第一行,編譯器會報錯。
可以給讀和寫賦予不同的訪問權限
請看上面Employee。Age屬性,請注意他的操作權限。
自動屬性的初始化
自動屬性會為字段自動賦予變量類型的初始值,如果是引用類型,則為null, 如果你想初始化,必須要在自定義的構造函數初始化。請看上面Employee。
不適用的情況
如果想在屬性中增加判斷、驗證等邏輯,則只能用傳統的屬性定義方法實現 如 下:
1public int Age
2{
3 get { return age; }
4 set
5 {
6 if ((value > 0) && (value < 500))
7 {
8 age = value;
9 }
10 else
11 {
12 throw new ArgumentOutOfRangeException ("你不是人!");
13 }
14 }
15}
16