将string []数组赋值给params string []的函数

时间:2013-04-02 06:03:38

标签: c# string params

我有一个函数void Test(int id, params string[] strs)

我如何传递一个字符串数组作为strs参数?我打电话的时候:

Test(1, "a, b, c");

它将“strs”作为单个字符串(不是数组)。

3 个答案:

答案 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[]>);

一样调用它

修改

来自MSDN website on params

  

params关键字允许您指定采用a的方法参数   可变数量的参数。您可以发送以逗号分隔的列表   参数声明中指定的类型的参数,或者   指定类型的参数数组。你也可以发送否   参数。参数之后不允许有其他参数   方法声明中的关键字,只有一个params关键字   允许在方法声明中使用。

因此,您也可以在没有编译器错误的情况下调用此Test Test(1);方法。

答案 2 :(得分:1)

试试这个。

var myStringArray = new string[] {"a", "b", "c"};
Test(myStringArray)