如果我有这样的方法:
public void DoSomething(int Count, string[] Lines)
{
//Do stuff here...
}
为什么我不能这样称呼它?
DoSomething(10, {"One", "Two", "Three"});
什么是正确的(但希望不是太远)?
你可以这样做:
DoSomething(10, new[] {"One", "Two", "Three"});
如果所有对象都具有相同类型,则无需在数组定义中指定类型
如果
DoSomething
是可以修改的函数,则可以使用 params
关键字传入多个参数,而无需创建数组。它还会正确接受数组,因此无需“解构”现有数组。
class x
{
public static void foo(params string[] ss)
{
foreach (string s in ss)
{
System.Console.WriteLine(s);
}
}
public static void Main()
{
foo("a", "b", "c");
string[] s = new string[] { "d", "e", "f" };
foo(s);
}
}
输出:
$ ./d.exe A 乙 C d e F
试试这个:
DoSomething(10, new string[] {"One", "Two", "Three"});
您可以在传递它的同时构造它,如下所示:
DoSomething(10, new string[] { "One", "Two", "Three"});
您也可以使用 [ ] 创建它,如下所示:
DoSomething(10, ["One", "Two", "Three"]);