我收到了一个错误:
'MoveBall.Game'不包含'ballSpeedAxis1'的定义,并且没有可以找到接受类型'MoveBall.Game'的第一个参数的扩展方法'ballSpeedAxis1'(你是否缺少using指令或汇编引用? )
一开始,当我尝试逐个插入值时没有错误。
int ballSpeedAxis1 = 1;
int ballSpeedAxis2 = 1;
...
int ballSpeedAxis10 = 1;
但是,在我改为for循环后,如下所示。
var ballSpeedXAxis = new int[10];
for (int i = 0; i < ballSpeedXAxis.Length; i++)
{
ballSpeedXAxis[i] = 1;
}
错误发生在以下几行:
private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis + Canvas.GetLeft(this.ball1));
}
我可以知道如何解决它?
答案 0 :(得分:2)
因为您的variable scope错了。 ballSpeedXAxis
应该在类中定义,而不是在初始化它的方法内部。此外,如果定义类范围的变量,则不能使用var。你不在OnUpdate方法中使用索引是很奇怪的。
class MyClass {
int[] ballSpeedXAxis = new int[10];
MyClass() { // constructor
for (int i = 0; i < ballSpeedXAxis.Length; i++)
{
ballSpeedXAxis[i] = 1;
}
}
private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis[<some index here>] + Canvas.GetLeft(this.ball1));
}
}
答案 1 :(得分:0)
您已将ballSpeedXAxis更改为数组,但在OnUpdate中您尝试访问它 好像它是一个正常的整数:
private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis + Canvas.GetLeft(this.ball1));
}
您必须在要使用的数组中指定int的索引
this.ballSpeedXAxis [0]例如。
现在你说错误是:
'MoveBall.Game'不包含'ballSpeedAxis1
的定义
如果您正在使用VisualStudio,MonoDevelop或Xamarin Studio单击错误 “错误”窗口中的项目应该直接指向代码中您仍在引用ballSpeedAxis1的位置。
您甚至可以尝试按CTRL + F并在搜索框中输入'ballSpeedAxis1',然后搜索整个解决方案。
如果使用任何一种方法都找不到位置, 然后某些东西可能不同步,您应该使用IDE的“CLEAN SOLUTION”和“REBUILD SOLUTION”功能。