具有可变数量参数的函数

时间:2012-03-20 10:02:37

标签: c# java function

正如标题所说,我需要知道方法参数中是否存在与java ...相对应的语法,例如

void printReport(String header, int... numbers) { //numbers represents varargs
  System.out.println(header);
  for (int num : numbers) {
     System.out.println(num);
  }
}

(代码由维基百科提供)

6 个答案:

答案 0 :(得分:53)

是的,你可以这样写:

void PrintReport(string header, params int[] numbers)
{
    Console.WriteLine(header);
    foreach (int number in numbers)
        Console.WriteLine(number);
}

答案 1 :(得分:9)

尝试使用params关键字,放在语句之前,例如

myFunction(params int[] numbers);

答案 2 :(得分:7)

是的,有。正如阿德里亚诺所说,你可以使用C#'params'关键字。 一个例子是下面的链接:

params(C#参考)

http://msdn.microsoft.com/en-us/library/w5zay9db.aspx

params关键字允许您指定采用可变数量参数的方法参数。

您可以发送以逗号分隔的参数声明中指定类型的参数列表,或者指定类型的参数数组。你也可以不发送任何参数。

方法声明中的params关键字后不允许使用其他参数,并且方法声明中只允许使用一个params关键字。“

答案 3 :(得分:4)

您可以使用params关键字声明一种方法来处理可变数量的参数。就像在Java中使用...一样,这将为您提供一个数组,并允许您使用可变数量的参数调用metod: http://msdn.microsoft.com/en-us/library/w5zay9db(v=vs.71).aspx

答案 4 :(得分:3)

这应该是

void printReport(String header, params int[] numbers)

答案 5 :(得分:3)

我相信你的意思是params

public void printReport(string header, params int[] list) 
{
    Console.WriteLine(header);

    for (int i = 0 ; i < list.Length; i++)
    {
        Console.WriteLine(list[i]);
    }
    Console.WriteLine();
}
相关问题