我遇到了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
}
}
我不明白为什么它无法更改变量,我也试过通过类中的访问器方法来做到这一点。我基本上复制了代码工作的代码,这让我完全难过。
答案 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
}
}