C# 字段初始值無法引用非靜態字段、方法或屬性( 類內部變量初始化)


問題:字段初始值設定項無法引用非靜態字段、方法或屬性的問題

在類中  變量賦值其他變量報錯? 

public class TestClass
{
  public TestClass()
  {
  }
  public int a=1;
  public int b= a;//注意 此處會報錯  字段初始值設定項無法引用非靜態字段、方法或屬性
}

 

原因:

 C#規定在類內部只能定義屬性或者變量,並初始化,不能直接變量引用變量。

 類中聲明的字段叫法

        在類內部使用聲明的字段 我們可以稱這個字段為變量

        在其他地方實例化類之后  通過類的實例調用的字段   我們可以稱之為該類的屬性

 

 C# 中字段的初始化先於構造函數。

 屬性內存和變量內存的分配的時間不一樣。 
 屬性是用的時候分配,變量是在類初始化時候分配。

 

    int b = a;  實力上是int b = this.a  

   this代表當前類  相當於是在初始化類實例之前就調用了類的屬性

   因為這時this還沒被初始化,所以編譯會報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM