問題:欄位初始值設定項無法參考非靜態欄位、方法或屬性的問題
在類中 變數賦值其他變數報錯?
public class TestClass
{
public TestClass()
{
}
public int a=1;
public int b= a;//注意 此處會報錯 欄位初始值設定項無法參考非靜態欄位、方法或屬性
}
原因:
C#規定在類內部只能定義屬性或者變數,并初始化,不能直接變數參考變數,
類中宣告的欄位叫法
在類內部使用宣告的欄位 我們可以稱這個欄位為變數
在其他地方實體化類之后 通過類的實體呼叫的欄位 我們可以稱之為該類的屬性
C# 中欄位的初始化先于建構式,
屬性記憶體和變數記憶體的分配的時間不一樣,
屬性是用的時候分配,變數是在類初始化時候分配,
int b = a; 實力上是int b = this.a
this代表當前類 相當于是在初始化類實體之前就呼叫了類的屬性
因為這時this還沒被初始化,所以編譯會報錯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/4866.html
標籤:C#
下一篇:Cmd重定向
