我试图在另一个类中使用Game1.cs
中声明的变量。
为简化起见,我创建了一个新项目,并希望操纵int变量x。
我在Object reference not set to an instance of an object.
game.x = 0;
我是C#的新手,任何人都可以告诉我问题是什么,以及如何解决?
这是班级:
class Class1
{
Game1 game;
public void init()
{
game = new Game1();
}
public void Update()
{
game.x = 0;
game.x++;
}
}
这是我在Game1.cs
public int x = 0;
Class1 y = new Class1();
//other stuff
protected override void Initialize()
{
y.init();
base.Initialize();
}
// Other stuff...
protected override void Update(GameTime gameTime)
{
y.Update();
base.Update(gameTime);
}
答案 0 :(得分:2)
我建议做一些编程教程。以这种方式操纵公共领域几乎没有充分的理由。然后,还有一个命名问题。什么是x
?整个窗口的水平位置?一些对象?还有别的吗?尽可能明显,它会很适合你。
实际问题可能是游戏在更新时为空,这看起来很奇怪。如果您真的想这样做,我建议您将Class1.Update
修改为Class1.Update(Game1 game)
。然后你可以y.Update(this)
。
但是,这绝对是解决问题的错误方法。你可以做得更好。请注意这一点。