访问非静态成员需要一个对象引用
问题描述:
我很抱歉,我知道这个问题已被C#初学者(我是其中之一)提出过一千次以前的问题,但我可以找到的所有答案都说我需要要么实例化类,要么静态。我的类是实例化的,我试图访问实例。任何人都可以看看我的代码,并找出出了什么问题?访问非静态成员需要一个对象引用
public class RocketSimMain {
public RocketShip test = new RocketShip();
public static void Main() {
... // Do some setup stuff here
//Run the game loop
while (!EndGameRequested()) {
test.Move(); <- Object instance error here.
}
}
}
正如你所看到的,我正在实例化类并访问实例。唯一可行的是在Main方法中实例化类,但是我无法在其他类中访问它。
答
您必须将test
设为静态才能使用静态方法(Main
)。
'test'不是一个静态成员变量,但是你试图从静态的'Main()'中访问它。 – xxbbcc
'测试'本身是一个实例字段,不是静态的。你不能从静态上下文中使用它。 –
[需要对象引用才能访问非静态成员](http://stackoverflow.com/questions/6992681/an-object-reference-is-required-to-access-non-static-member) – xxbbcc