http://www.cnblogs.com/bluestorm/p/3432190.html 問題:欄位初始值設定項無法引用非靜態欄位、方法或屬性的問題 下麵代碼出錯的原因,在類中定義的欄位為什麼不能用? public class Test {public Test(){}public int A ...
http://www.cnblogs.com/bluestorm/p/3432190.html
問題:欄位初始值設定項無法引用非靜態欄位、方法或屬性的問題
下麵代碼出錯的原因,在類中定義的欄位為什麼不能用?
public class Test
{
public Test()
{
}
public int Age=23;
public int temp = Age;//ERROR 欄位初始值設定項無法引用非靜態欄位、方法或屬性
}
C#規定在類內部只能定義屬性或者變數,並初始化,不能直接變數引用變數。
在初始化類實例之前就調用了欄位
c# 中欄位的初始化先於構造函數。
string y = "asdf" + x; 實際上是 y = "asdf" + this.x;
因為這時this還沒被初始化,所以編譯會報錯。
屬性記憶體和變數記憶體的分配的時間不一樣。
屬性是用的時候分配,變數是在類初始化時候分配。