我从事过 Java 和 .Net 技术的新手工作
是否可以在 C# 中声明一个接受可变输入参数的函数
是否有任何类似于以下 Java 语法的 C# 语法?
void f1(String... a)
我从事过 Java 和 .Net 技术的新手工作
是否可以在 C# 中声明一个接受可变输入参数的函数
是否有任何类似于以下 Java 语法的 C# 语法?
void f1(String... a)
是的,C# 有一个等价的可变参数。它们被称为参数数组,并通过params
修饰符引入:
public void Foo(int x, params string[] values)
然后调用它:
Foo(10, "hello", "there");
就像 Java 一样,它只是最后一个参数可以像这样变化。请注意(与 Java 一样)参数 ofparams object[] objects
很容易引起混淆,因为您需要记住单个参数类型object[]
是否意味着要再次包装。同样对于任何可为空的类型,您需要记住单个参数 是null
将被视为数组引用还是单个数组元素。(我认为编译器只会在必要时创建数组,但我倾向于编写代码以避免我不得不记住这一点。)
params 关键字允许您指定一个方法参数,该参数采用可变数量的参数。
您可以发送以逗号分隔的参数声明中指定类型的参数列表,或指定类型的参数数组。您也可以不发送任何参数。
方法声明中 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);