我正在学习 C#,目前正在玩 Monogame。我要做的是在我的 Game1 类中声明一个名为“randVar”的 System.Random 类的公共实例,然后从我的 Testz(从 Sprite 派生)类中访问它。这不起作用,它告诉我“当前上下文中不存在名称 'randVar'。” 我正在挠头试图找出原因,因为 randVar 是公开的,我认为我应该能够访问它。
问问题
1300 次
4 回答
1
为了能够访问该类的randVar
成员Game1
,您必须首先拥有该类的一个实例。它与类的任何其他公共成员相同。它目前不存在于Testz
该类的范围内。如果你只是想要一个随机数,你应该Random randVar = new Random()
在你的Testz
班级里做。
于 2012-12-06T17:13:56.177 回答
0
您在 Game1 中定义了 randVar,但使用了 TestZ。只需将定义移动到 TestZ 或更好的 Sprite 中。
此外,您应该知道 Random 不是线程安全的。所以最好让每个类都保留它的实例。
于 2012-12-06T17:17:58.463 回答
0
如果没有在第二个类中实例化第一个类,就不能从另一个类中引用定义在一个类中的实例变量。您可以在TestZ
课堂上执行以下操作:
Game1 oGame1 = new Game1();
然后你可以这样做:
location.X = oGame1.randVar.Next(0,100) * .01f * screenBounds.Width;
于 2012-12-06T17:16:20.760 回答
-1
您必须将static
修饰符添加到变量的声明中:
public static Random randVar = new Random();
于 2012-12-06T17:14:16.680 回答