C# 错误CS1501:I';我没有正确重载Sum()方法

C# 错误CS1501:I';我没有正确重载Sum()方法,c#,arrays,sum,overloading,C#,Arrays,Sum,Overloading,下面是我本周C#作业的5号草稿。我首先用Linq编写了这个程序,它运行得很好。不幸的是,方向说明我必须创建自己的方法,而不是使用Linq中已经找到的奇妙的Sum()方法。此源代码的主要问题是方法重载不正确(我的整个Sum()方法也可能是错误的)。由于我们万能的文本没有清楚地解释如何重载这样的方法,我有点不知所措。。。(或者说损失了很多) 以下是作业说明(再次): 创建一个名为Sum()的方法,该方法接受任意数量的整数参数并显示它们的和。编写一个Main()方法,演示当传递一个、三个、五个或10个

下面是我本周C#作业的5号草稿。我首先用Linq编写了这个程序,它运行得很好。不幸的是,方向说明我必须创建自己的方法,而不是使用Linq中已经找到的奇妙的Sum()方法。此源代码的主要问题是方法重载不正确(我的整个Sum()方法也可能是错误的)。由于我们万能的文本没有清楚地解释如何重载这样的方法,我有点不知所措。。。(或者说损失了很多)

以下是作业说明(再次):

创建一个名为Sum()的方法,该方法接受任意数量的整数参数并显示它们的和。编写一个Main()方法,演示当传递一个、三个、五个或10个整数数组时Sum()方法是否正确工作。将程序另存为UsingSum.cs

摘自Microsoft®Visual C#2008《面向对象编程入门》,3e,Joyce Farrell

以下是我的源代码:

using System;

public class UsingSum
{
    public static void Main()
    {

        //Step 1: Adding 1, 3 and 5

        int[] array1 = { 1, 3, 5 };

        int a;
        int b;
        int c;
        int d;
        int e;
        int f;
        int g;
        int h;
        int i;
        int j;        
        int firstSum;
        int secondSum;

        Console.Write("When the numbers 1, 3 and 5 are added together, using the Sum() method, the answer is: ");

        firstSum = Sum(array1);
        Console.WriteLine("{0}", firstSum);



        //Step 2: Entering variables into Array2[10]


        Console.Write("Enter first integer for addition: ");
        a = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter second integer for addition: ");
        b = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter third integer for addition: ");
        c = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter forth integer for addition: ");
        d = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter fifth integer for addition: ");
        e = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter sixth integer for addition: ");
        f = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter seventh integer for addition: ");
        g = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter eighth integer for addition: ");
        h = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter ninth integer for addition: ");
        i = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter tenth integer for addition: ");
        j = Convert.ToInt32(Console.ReadLine());

        int[] array2 = { a, b, c, d, e, f, g, h, i, j };

        Console.Write("The total of {0} + {1} + {2} + {3} + {4} + {5} + {6} + {7} + {8} + {9} is: ",
        a, b, c, d, e, f, g, h, i, j);

        secondSum = Sum(array2);
        Console.WriteLine("{0}", secondSum);


    }


//Step 3: Defining the Sum() method

   public static int Sum(int a, int b)

//My overload is generating error CS1501: No overload for method 'Sum' takes '1' arguments

   {

   int sum = 0;
   int[] adder = new int[0];
//designating an array with no parameters...

   for(int a = 0; a < adder.Length; ++a)
      adder[a] = a;

   foreach(int b in adder)
      sum += b;
      Console.WriteLine(" " + sum);
   }
}
使用系统;
使用sum的公共类
{
公共静态void Main()
{
//步骤1:添加1、3和5
int[]数组1={1,3,5};
INTA;
int b;
INTC;
int d;
INTE;
int f;
int g;
int-h;
int i;
int j;
整数第一和;
int第二和;
Write(“当使用Sum()方法将数字1、3和5相加时,答案是:”);
firstSum=总和(数组1);
Console.WriteLine(“{0}”,firstSum);
//步骤2:将变量输入Array2[10]
编写(“为加法输入第一个整数:”);
a=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第二个整数:”);
b=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第三个整数:”);
c=Convert.ToInt32(Console.ReadLine());
Console.Write(“为加法输入第四个整数:”);
d=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第五个整数:”);
e=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第六个整数:”);
f=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第七个整数:”);
g=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第八个整数:”);
h=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第九个整数:”);
i=Convert.ToInt32(Console.ReadLine());
编写(“为加法输入第十个整数:”);
j=Convert.ToInt32(Console.ReadLine());
int[]array2={a,b,c,d,e,f,g,h,i,j};
Write({0}+{1}+{2}+{3}+{4}+{5}+{6}+{7}+{8}+{9}的总数为:“,
a、 b、c、d、e、f、g、h、i、j);
secondSum=总和(数组2);
Console.WriteLine(“{0}”,secondSum);
}
//步骤3:定义Sum()方法
公共静态整数和(整数a,整数b)
//我的重载正在生成错误CS1501:方法“Sum”没有重载接受“1”参数
{
整数和=0;
int[]加法器=新的int[0];
//正在指定没有参数的数组。。。
对于(int a=0;a
您正在定义Sum以接受2个参数

public static int Sum(int a, int b)
但仅用一个参数调用它

firstSum = Sum(array1);
尝试定义总和以获取整数数组:

public static int Sum(int[] input)

好的,我试一下:-)谢谢你把问题解释得这么清楚。它成功了!-)我忘了在末尾加报税表。实际的求和函数会为所有值生成0,但我会计算出来。。。谢谢你的帮助…我的源代码编译和工作都很完美。它生成0是因为我引用了foreach中的加法器数组(adder中的int b),而不是引用用于重载Sum()方法的“input”数组。非常感谢所有在本周末帮助我解决这些问题的人。:-)值得注意的是,对于这种赋值,关键字params值得研究:)