有没有Java的可变参数的C#替代品?

我曾经从事Java和新的.NET技术

是否有可能在C#中声明一个接受variablesinput参数的函数

有没有类似于下面的Java语法的C#语法?

void f1(String... a) 

是的,C#有一个相当于可变参数的参数。 它们被称为参数数组 ,并引入了params修饰符:

 public void Foo(int x, params string[] values) 

然后用以下方式调用它

 Foo(10, "hello", "there"); 

就像Java一样,只是最后一个参数可以像这样变化。 请注意(与Java一样) params object[] objects的参数很容易引起混淆,因为您需要记住object[]types的单个参数是否要重新包装。 同样,对于任何可空types,您需要记住null的单个参数是否将被视为数组引用或单个数组元素。 (我认为编译器只会创build数组,如果必须的话,但我倾向于编写代码,避免我必须记住)。

看看参数(C#参考)

params关键字可以让你指定一个方法参数,该参数需要可变数量的参数。

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

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

如示例所示,该方法被声明为

 public static void UseParams(params int[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); } 

并用作

 UseParams(1, 2, 3, 4);