-2

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

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
  }
}

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

4

1 回答 1

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
    }
}
于 2012-10-15T13:43:56.300 回答