C#编程中的此错误消息是什么?

时间:2013-07-24 04:01:13

标签: c#

我收到了一个错误:

  

'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));
}

我可以知道如何解决它?

2 个答案:

答案 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”功能。

相关问题