2017-07-07 60 views
0

我的代碼如下。任何幫助,將不勝感激。如果這是一個簡單的錯誤,我會提前道歉 - 我仍然是C#的初學者(通常是面向對象的)。不知道爲什麼我會得到「非靜態字段需要對象引用」

public class Game1 : Microsoft.Xna.Framework.Game 
{ 
    public void Update() 
    { 
     Levels level = new Levels(); 
     Game1 mainGame = Game1; 
     Levels.AliensSetUp(1, 2, 50, 0, 0, 0, mainGame); 
    } 
} 

class Levels 
{ 
    public void AliensSetUp(int numberRows, int numberColumns, int spaceBetween, int XStart, int YStart, int AlienType, Game1 mainGame) 
} 

該錯誤是對在 「mainGame」 「Levels.AliensSetUp(1,2,50,0,0,0,mainGame)」。我也嘗試用「game1」取代「mainGame」,但我也得到了一個錯誤。感謝您給我的任何幫助。

+2

您需要了解[靜態成員VS實例成員在C#(https://msdn.microsoft.com/en-us/library/aa645629(V = vs.71)的.aspx) 。有一些基本的面向對象的編程概念,你錯過了。 –

+0

您正嘗試使用類的名稱('Levels')調用'AliensSetUp'方法。相反,您需要使用您創建的對象('level')的實例。基於你的問題中的代碼,它將是'level.AlensSetUp(...)'。 –

+0

修復它 - 謝謝! – Hychet

回答

3

級別不是靜態的。你有Levels類的「新」,然後調用它的AliensSetUp()方法。例如:

var levels = new Levels(); 
levels.AliensSetup(...) 
+0

他沒有對Game1做任何事情。他試圖將類型本身分配給類型的一個實例。他不知道「實例」和「靜態」是什麼意思。 –

+0

謝謝,澄清說。它應該是:var levels = new Levels(); levels.AliensSetup ... –

+0

我認爲屬於答案,而不是評論。 –

相關問題