問題:字段初始值設定項無法引用非靜態字段、方法或屬性的問題
在類中 變量賦值其他變量報錯?
public class TestClass
{
public TestClass()
{
}
public int a=1;
public int b= a;//注意 此處會報錯 字段初始值設定項無法引用非靜態字段、方法或屬性
}
原因:
C#規定在類內部只能定義屬性或者變量,並初始化,不能直接變量引用變量。
類中聲明的字段叫法
在類內部使用聲明的字段 我們可以稱這個字段為變量
在其他地方實例化類之后 通過類的實例調用的字段 我們可以稱之為該類的屬性
C# 中字段的初始化先於構造函數。
屬性內存和變量內存的分配的時間不一樣。
屬性是用的時候分配,變量是在類初始化時候分配。
int b = a; 實力上是int b = this.a
this代表當前類 相當於是在初始化類實例之前就調用了類的屬性
因為這時this還沒被初始化,所以編譯會報錯。