C# 方法的重载不接受0个参数

C# 方法的重载不接受0个参数,c#,xna,C#,Xna,我目前正在XNA为我的学校项目制作一个游戏。 它包括一个桨和一个球,这个想法是迫使球离开顶部边界,然后你进入下一个更难的水平,你一直走到你死。 这就是我的胜利检测代码的样子: if (position.Y < 0 && pbcollide == true) { MessageBox(new IntPtr(0), "Level cleared!", "Nice job", 0); paddle.SetInStartPosition(); padd

我目前正在XNA为我的学校项目制作一个游戏。 它包括一个桨和一个球,这个想法是迫使球离开顶部边界,然后你进入下一个更难的水平,你一直走到你死。 这就是我的胜利检测代码的样子:

if (position.Y < 0 && pbcollide == true)
{
     MessageBox(new IntPtr(0), "Level cleared!", "Nice job", 0);
     paddle.SetInStartPosition();
     paddle.lvcounter++;
}
它表示该方法的重载不接受0个参数。我应该提出哪些论点?我真的不知道该怎么办。 我也试着用全新的方法来避免这种情况,但当我这样做的时候,比赛开始时没有错误,但当条件满足时,绝对不会发生任何事情。所以我完全糊涂了。

怎么解决

方法的重载不接受X个参数

  • 找出导致此编译器错误的调用。(在您的情况下,它是调用
    CheckCollisionWall();
  • 仔细查看此调用中参数的数量和类型。(在您的示例中,它是零参数)
  • 查找此方法的所有定义。(您可以在Visual studio中使用
    Find
    Find Usages
    或intellisense)
  • 将所有定义/重载与调用进行比较

  • 当您使用具有不同数量参数的调用,或者与可用定义/重载相比,至少有一个参数的类型不同时,会导致此错误。

    将光标放在parantheses中,然后按Ctrl+p。它会显示参数列表。您需要将位置传递给CheckCollisionWall();当我按下Ctrl P时,我的打印对话框打开,当我传递位置错误时仍然存在:/where is CheckCollisionWall()方法被定义??就在我调用它的方法下方,是同一个类。矢量2位置和运动在同一个类中定义
    public void Update()
    {
         position += motion * ballSpeed;
         CheckCollisionWall();
         OffBottom();
    }