我有一个函数void Test(int id, params string[] strs)
。
我如何传递一个字符串数组作为strs
参数?我打电话的时候:
Test(1, "a, b, c");
它将“strs”作为单个字符串(不是数组)。
答案 0 :(得分:32)
实际上,params
只是一个由C#编译器处理的语法糖,所以
这样:
void Method(params string[] args) { /**/ }
Method("one", "two", "three");
成为这个:
void Method(params string[] args) { /**/ }
Method(new string[] { "one", "two", "three" })
答案 1 :(得分:8)
我对此进行了测试并且有效:
private void CallTestMethod()
{
string [] strings = new string [] {"1", "2", "3"};
Test(1, strings);
}
private void Test(int id, params string[] test)
{
//Do some action with input
}
您可以像Test(1, <Some string[]>);
修改强>
params关键字允许您指定采用a的方法参数 可变数量的参数。您可以发送以逗号分隔的列表 参数声明中指定的类型的参数,或者 指定类型的参数数组。你也可以发送否 参数。参数之后不允许有其他参数 方法声明中的关键字,只有一个params关键字 允许在方法声明中使用。
因此,您也可以在没有编译器错误的情况下调用此Test
Test(1);
方法。
答案 2 :(得分:1)
试试这个。
var myStringArray = new string[] {"a", "b", "c"};
Test(myStringArray)