请参阅此答案:Pass multiple optional parameters to a C# function 关于Params的问题(到一点)。我想知道的是,如何(如果可能的话)这可以用于获取用户输入而不是预定义的数字? 所以,我知道我可以做Console.Write(calculator.Add(1,43,23))但是想处理用户输入。
class Program
{
static void Main(string[] args)
{
var calculator = new Calculator();
var input = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(calculator.Add(input));
}
}
public class Calculator
{
public int Add(params int[] numbers)
{
var sum = 0;
foreach (var number in numbers)
{
sum += number;
}
return sum;
}
}
答案 0 :(得分:0)
您可以将所有用户输入存储在一个数组中,并将该数组传递给Add
。
var calculator = new Calculator();
var input = Array.ConvertAll<int>(Console.ReadLine().Split(' '));
calculator.Add(input);
答案 1 :(得分:-2)
这些方面的东西应该有效。我可能犯了语法错误:D
using System;
class Program
{
static void Main(string[] args)
{
var calculator = new Calculator();
var input = GetNumbers();
calculator.Add(input);
Console.WriteLine(calculator.Add(input));
}
public static int[] GetNumbers()
{
Console.WriteLine("Enter Numbers Seperated With a Space");
string input = Console.ReadLine(); //Get user input with this
string[] arr = input.Split(' '); //Split the input at spaces
int[] output = new int[arr.Length]; //create in array of same length
for(int i = 0; i < output.Length; i++)
{
output[i] = Int32.Parse(arr[i]); //parse every value and add to int array
}
return output;
}
}
public class Calculator
{
public int Add(params int[] numbers)
{
var sum = 0;
foreach (var number in numbers)
{
sum += number;
}
return sum;
}
}