正如标题所述,我需要知道是否有一种与Java的方法参数中的...
相对应的语法,例如
void printReport(String header, int... numbers) { //numbers represents varargs
System.out.println(header);
for (int num : numbers) {
System.out.println(num);
}
}
(代码由维基百科提供)
正如标题所述,我需要知道是否有一种与Java的方法参数中的...
相对应的语法,例如
void printReport(String header, int... numbers) { //numbers represents varargs
System.out.println(header);
for (int num : numbers) {
System.out.println(num);
}
}
(代码由维基百科提供)
你可以写出这样的代码:
void PrintReport(string header, params int[] numbers)
{
Console.WriteLine(header);
foreach (int number in numbers)
Console.WriteLine(number);
}
尝试使用params关键字,放置在语句之前,例如
myFunction(params int[] numbers);
是的,有的。如Adriano所说,您可以使用C#的“params”关键字。
以下链接中提供了一个示例:
params (C# 参考)
http://msdn.microsoft.com/zh-cn/library/w5zay9db.aspx
“params关键字允许您指定一个接受可变数量参数的方法参数。
您可以发送一个逗号分隔的参数列表,其类型在参数声明中被指定,或者是一个指定类型的参数数组。您还可以不发送任何参数。
在方法声明中的params关键字后不能再添加其他参数,且在方法声明中只允许一个params关键字。”
params
关键字来声明一个带有可变数量参数的方法。与在 Java 中使用 ...
一样,这将为您提供一个数组,并允许您以可变数量的参数调用该方法:
http://msdn.microsoft.com/en-us/library/w5zay9db(v=vs.71).aspx
这应该是
void printReport(String header, params int[] numbers)
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();
}
你可以使用params
,但是它必须始终在列表中放在最后:
public void PrintReport(string header, params int[] numbers)
{
然而,可以通过使用命名参数来组合params可选参数(例如[CallerMemberName]
),即使参数是相同类型的也可以实现。
像这样声明方法:
public static void PrintReport(
[CallerMemberName] string callerName = "",
[CallerFilePath] string sourceFilePath = "",
params string[] inputStrings)
{
然后这样调用:
PrintReport(inputStrings: new[] { "string 1", "string 2" } );