不知道为什么我会得到“非静态字段需要对象引用”
我的代码如下。任何帮助,将不胜感激。如果这是一个简单的错误,我会提前道歉 - 我仍然是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”,但我也得到了一个错误。感谢您给我的任何帮助。
级别不是静态的。你有Levels类的“新”,然后调用它的AliensSetUp()方法。例如:
var levels = new Levels();
levels.AliensSetup(...)
他没有对Game1做任何事情。他试图将类型本身分配给类型的一个实例。他不知道“实例”和“静态”是什么意思。 –
谢谢,澄清说。它应该是:var levels = new Levels(); levels.AliensSetup ... –
我认为属于答案,而不是评论。 –
您需要了解[静态成员VS实例成员在C#(https://msdn.microsoft.com/en-us/library/aa645629(V = vs.71)的.aspx) 。有一些基本的面向对象的编程概念,你错过了。 –
您正尝试使用类的名称('Levels')调用'AliensSetUp'方法。相反,您需要使用您创建的对象('level')的实例。基于你的问题中的代码,它将是'level.AlensSetUp(...)'。 –
修复它 - 谢谢! – Hychet