我正在嘗試從我的一個類中的不同類訪問一些變數,我希望能夠從其他類中獲取值并設定這些變數的值。
現在,我正在使用靜態,但我使用它太多了,我認為這不是一個好習慣。
所以我正在嘗試使用 getter 和 setter,但我無法讓它發揮作用。這是我現在正在做的一個小例子:
總經理檔案
public float eggs ;
public float getEggs(){
return eggs ;
}
游戲管理器檔案
generalManager.getEggs() ;
我有這個錯誤:
Assets/Scripts/gameManager.cs : error CS0120: An object reference is required for the non-static field, method, or property 'generalManager.eggs')
而且我不得不承認,我不知道該怎么做才能不再出現此錯誤。
uj5u.com熱心網友回復:
您只能通過兩種方式訪問??類的變數:
- 使變數靜態。
public class GeneralManager
{
public static float Eggs;
}
并使用GameManager中的變數,例如GeneralManager.Eggs
- 在第二個類中創建該類的物件。例如,GeneralManager 類將如下所示
public class GeneralManager
{
public string Eggs
}
在 GameManager 中,執行此操作
GeneralManager generalManager = new GeneralManager()
float eggsLeft = generalManager.Eggs
注意:第二種情況,如果你創建了多個GeneralManager類的物件,那么eggs的值在每個實體中都是不同的。例如,如果您的兩個類創建了 generalManger 物件,并且您從一個類更新 Eggs 的值,則另一個類中的物件將保持不變。在這種情況下,請使用第一種方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/498411.html
上一篇:如何在介面中抽象EntityFrameworkCoreDBSet<T>?
下一篇:添加對單個DLL檔案的參考