0

我已经在许多网站上搜索了解决方案,但我不能完全掌握重载方法的概念,至少对于这个方法来说不是,因为我看不出我哪里出了问题。每当我尝试调用下面所述的方法时,我都会收到此错误 - “方法'arrayCalculator' 没有重载需要 0 个参数”。我希望你能帮助我解决这个问题。谢谢。

public class Calculations
{
    public static int[] arrayCalculator(object sender, EventArgs e, int m)
    {
        int i; 
        int[] result = new int[9];   
        int[] timesTable = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        for (i = 0; i <= 9; i++)
        {                
            result[i] = m * timesTable[i];
            System.Diagnostics.Debug.WriteLine("Calculation successful: " + m + " * " +  timesTable[i] + " = " + result[i] + "."); 
       }
       return result; // returns int result[]
    }
}
4

3 回答 3

1

看来您正试图在没有任何参数的情况下调用此函数。在您的情况下,您只使用 int 参数,因此您应该使用下面的函数。

public class Calculations
{
    public static int[] arrayCalculator(int m)
    {
        int i; 
        int[] result = new int[9];   
        int[] timesTable = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        for (i = 0; i <= 9; i++)
        {                result[i] = m * timesTable[i];
            System.Diagnostics.Debug.WriteLine("Calculation successful: " + m + " * " +  timesTable[i] + " = " + result[i] + "."); 
       }
        return result; // returns int result[]
    }
}

编辑:

您正在调用此函数,arrayCalculator();而是将您的参数传递给该函数,以便该函数知道在您的代码中使用什么来代替“m”。

例子:

假设计算的类型是Calculations。那么你会有

var mValue = 20;

var result = calculations.arrayCalculator(mValue);
于 2013-10-16T11:52:28.653 回答
0

您可能正在调用您的方法,如下所示:

arrayCalculator();

解决问题的两种方法。

  1. 将三个需要的参数发送到您要调用的方法。
  2. 修改你的arrayCalculator method.

1

arrayCalculator(parameter1, parameter2, parameter3);

2

修改您的方法,以便调用它需要零个参数。

于 2013-10-16T11:55:36.800 回答
-1

您在没有参数的情况下调用它。用 3 个参数调用它。

于 2013-10-16T11:52:28.457 回答