方法c#没有重载

时间:2013-10-16 11:49:35

标签: c# arguments overloading

我在数字网站上搜索过一个解决方案,但是我不能完全理解重载方法的概念,至少不是这个概念,因为我无法看到我在哪里出错。每当我尝试调用下面描述的方法时,我都会收到此错误 - “方法没有重载'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[]
    }
}

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

你可能正在调用你的方法如下:

arrayCalculator();

解决问题的两种方法。

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

    arrayCalculator(parameter1, parameter2, parameter3);
    

    <强> 2

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

答案 2 :(得分:-1)

您正在调用它而没有参数。用3个参数调用它。