以下是本周C#Homework的5号草案。我首先使用Linq编写了程序,它工作正常。不幸的是,方向声明我必须创建自己的方法,而不是使用已在Linq中找到的精彩Sum()方法。这个源代码的主要问题是方法重载是不正确的(并且我的整个Sum()方法也可能是错误的)。由于我们的全能文本没有清楚地解释如何重载这样的方法,我有点迷失......(或者很多人丢失)。
以下是分配说明(再次):
“创建一个名为Sum()的方法,它接受任意数量的整数参数并显示它们的总和。编写一个Main()方法,演示Sum()方法在传递一个,三个,五个或一个数组时正确工作10个整数。将程序保存为UsingSum.cs。“
来自Microsoft®VisualC#®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);
}
}
答案 0 :(得分:2)
您正在定义Sum以获取2个参数
public static int Sum(int a, int b)
但只用1参数调用它
firstSum = Sum(array1);
尝试定义Sum以获取int数组:
public static int Sum(int[] input)