C# 如何在MonoGame的其他类中使用Game1类中声明的变量

C# 如何在MonoGame的其他类中使用Game1类中声明的变量,c#,xna,monogame,C#,Xna,Monogame,我试图在另一个类中使用在Game1.cs中声明的变量 为了简化,我创建了一个新项目,并希望操作int变量x。 我得到的对象引用没有设置为对象的实例。在游戏中。x=0 我是C#的新手,任何人都可以告诉我问题是什么,以及如何解决 这是一节课: class Class1 { Game1 game; public void init() { game = new Game1(); } public void Update() {

我试图在另一个类中使用在
Game1.cs
中声明的变量

为了简化,我创建了一个新项目,并希望操作int变量x。 我得到的
对象引用没有设置为对象的实例。
游戏中。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);
        }

我建议做一些编程教程。这样操纵公共领域几乎没有什么好的理由。还有一个命名问题。什么是
x
?整个窗口的水平位置?什么东西?完全是别的吗?越明显越好,这对你就越有利

实际的问题很可能是游戏在更新时是空的,这看起来很奇怪。如果你真的想这样做,我建议将
Class1.Update
修改为
Class1.Update(Game1游戏)
。然后您可以执行
y.Update(此)


不过,这绝对是解决问题的错误方法。你可以做得更好。请注意这一点。

为什么要以这种方式访问game1?你的目标是什么?想了想,我想我真的不需要这样使用它。相反,我将把所需的变量作为参数发送给另一个类。谢谢。我想没有必要这样使用game1类。谢谢你抽出时间。