2012-03-20 89 views
16

正如标题变量号说,我需要知道,如果有相应的语法,Java的...在方法的参数,如功能与参数

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

(维基百科的代码提供)

+2

重复question.please阅读此链接.http://stackoverflow.com/questions/910585/c-sharp-variable-length-args-which-is-better-and-why-arglist-params-array-o 或例如阅读http://msdn.microsoft.com/en-us/library/ms182366(v=vs.80).aspx – 2012-03-20 10:06:39

+1

在您的链接 – Gabber 2012-03-20 12:25:08

回答

24

是你可以写这样的事情:

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

+1中找不到与java的并行。我修正了缩进。 – Tudor 2012-03-20 10:07:13

3

这应该是

void printReport(String header, params int[] numbers) 
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(); 
} 
8

尝试使用params关键字,放在声明之前,如

myFunction(params int[] numbers); 
6

是的,有。正如Adriano所说,你可以使用C#的'params'关键字。 一个例子是在以下链接:

PARAMS(C#参考)

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

的params关键字可以指定采用可变数目的参数的方法参数

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

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