C# 错误CS1501:I';我没有正确重载Sum()方法
下面是我本周C#作业的5号草稿。我首先用Linq编写了这个程序,它运行得很好。不幸的是,方向说明我必须创建自己的方法,而不是使用Linq中已经找到的奇妙的Sum()方法。此源代码的主要问题是方法重载不正确(我的整个Sum()方法也可能是错误的)。由于我们万能的文本没有清楚地解释如何重载这样的方法,我有点不知所措。。。(或者说损失了很多) 以下是作业说明(再次): 创建一个名为Sum()的方法,该方法接受任意数量的整数参数并显示它们的和。编写一个Main()方法,演示当传递一个、三个、五个或10个整数数组时Sum()方法是否正确工作。将程序另存为UsingSum.cs 摘自Microsoft®Visual C#2008《面向对象编程入门》,3e,Joyce Farrell 以下是我的源代码:C# 错误CS1501:I';我没有正确重载Sum()方法,c#,arrays,sum,overloading,C#,Arrays,Sum,Overloading,下面是我本周C#作业的5号草稿。我首先用Linq编写了这个程序,它运行得很好。不幸的是,方向说明我必须创建自己的方法,而不是使用Linq中已经找到的奇妙的Sum()方法。此源代码的主要问题是方法重载不正确(我的整个Sum()方法也可能是错误的)。由于我们万能的文本没有清楚地解释如何重载这样的方法,我有点不知所措。。。(或者说损失了很多) 以下是作业说明(再次): 创建一个名为Sum()的方法,该方法接受任意数量的整数参数并显示它们的和。编写一个Main()方法,演示当传递一个、三个、五个或10个
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值得研究:)