我无法对班级中的成员进行更改

时间:2012-10-15 12:42:28

标签: c# windows-phone-7 xna

我遇到了C#和XNA for Windows phone的问题。我创建了一个名为Item的类,它位于XNA的Game1类中。我遇到的问题是,在我创建所有项目后,我无法对它们进行更改,它不会引发错误,但更改也不会生效。所以代码就像这样:

public class Game1 : Microsoft.Xna.Framework.Game {
  Item Loading;
  Item[] Stuff = new Item[2];

  public class Item {
    public bool visible = true;
  }

  protected override void LoadContent() {
    Loading = new Item();
    Stuff[1] = new Item();
  }

  protected override void Update(GameTime gameTime) {
    Loading.visible = false;
    System.Diagnostics.Debug.WriteLine(Loading.visible); //prints true
    Stuff[1].visible = false;
    System.Diagnostics.Debug.WriteLine(Stuff[1].visible); //prints false
  }
}

我不明白为什么它无法更改变量,我也试过通过类中的访问器方法来做到这一点。我基本上复制了代码工作的代码,这让我完全难过。

1 个答案:

答案 0 :(得分:0)

此代码有效。我删除了继承约束,但它也应该与它们一起使用。我看到的主要问题是你宣称“Stuff”的方式。我不确定你使用的是什么版本的c#但据我所知(VS2010)你不能像你所做的那样声明一个数组(如在C / C ++中)。您必须使用new关键字初始化数组。

public class Game1
{
    Item Loading;
    Item[] Stuff;

    public class Item
    {
        public bool visible = true;
    }

    public void LoadContent()
    {
        Loading = new Item();
        Stuff = new Item[2];
        Stuff[1] = new Item();
    }

    public void Update(DateTime gameTime)
    {
        Loading.visible = false;
        System.Diagnostics.Debug.WriteLine(Loading.visible); //prints false

        Stuff[1].visible = false;
        System.Diagnostics.Debug.WriteLine(Stuff[1].visible); //prints false
    }
}