最近了解了params以及在方法中使用它的方法,我创建了这个:
int Add = n.add(2,34,4,5,6);
int Add2 = n.add(1, 2, 3, 4, 5, 6);
Console.WriteLine(Add);
Console.WriteLine(Add2);
我可以称之为
Console.WriteLine(n.add(Convert.ToInt32(Console.ReadLine()),Convert.ToInt32(Console.ReadLine())));
但是如果我想传递一个未知数量的用户输入呢?
这样的事情:
Convert.ToInt32(Console.ReadLine());
问题在于,这种方式我必须多次写forever start app.js
。
有没有更好的方法呢?就像用户输入3个数字一样,它会将它们相加,但如果下次用户键入5个数字,则会将其相加而不是....等等。
答案 0 :(得分:1)
听起来你想要做的就是让用户在程序运行时输入数字,并在用户“完成”时停止。你必须有某种退出条件。用户输入“=”或者告诉程序用户输入了要添加的数字的东西。
int Sum=0;
string s="0";
while (!s.Equals("=")) {
Sum += Convert.ToInt16(s);
Console.Write("Type a number (Enter = to get the sum): ");
s = Console.ReadLine();
}
Console.WriteLine("The sum is " + Sum.ToString());
答案 1 :(得分:1)
params int[]
数组参数将采用一系列int
个参数,或者int
的单个数组(这与{{{{}}相同。 1}}等等)。因此,您可以将parmas object[]
方法传递给任意大小的整数数组:
add(params int[] args)
实际上,这就是您在案例中使用它的方式。您可以向var a = new [] { 1, 2, 3 };
add(a);
添加任意数量的整数,然后将其转换为数组:
List<int>
但是在这里我是如何总结那个整数列表的:
List<int> ints = new List<int>();
while (true) {
var s = Console.ReadLine(s);
int n;
if (Int32.TryParse(s, out n)) {
ints.Add(n);
} else {
break;
}
}
int sum = add(ints.ToArray());