C# 将字符串[]数组分配到参数为字符串[]的函数中

C# 将字符串[]数组分配到参数为字符串[]的函数中,c#,string,params,C#,String,Params,我有一个函数无效测试(int-id,params-string[]strs) 如何将字符串数组作为strs参数传递?当我打电话时: Test(1, "a, b, c"); 它将“strs”作为单个字符串(而不是数组)。我对此进行了测试,它可以工作: private void CallTestMethod() { string [] strings = new string [] {"1", "2", "3"}; Test(1, strings);

我有一个函数
无效测试(int-id,params-string[]strs)

如何将字符串数组作为
strs
参数传递?当我打电话时:

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

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

我对此进行了测试,它可以工作:

    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,)

编辑

发件人:

params关键字用于指定采用 参数数量可变。您可以发送以逗号分隔的列表 参数声明中指定类型的参数,或 指定类型的参数数组。你也可以不发送 论据。参数后不允许有其他参数 方法声明中的关键字,并且仅显示一个params关键字 在方法声明中允许

因此,您也可以像下面这样调用
Test
方法
Test(1)没有编译器错误。

实际上,
参数
只是由C编译器处理的语法糖,因此

这:

变成这样:

void Method(params string[] args) { /**/ }
Method(new string[] { "one", "two", "three" })
试试这个

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

如果当前代码不工作,您遇到了什么错误?您使用的是什么语言?我使用的是C#。我只需将整个数组字符串分配到params字符串[]中就可以解决这个问题。请参阅文档中的params关键字:这个问题是一个简单的错误理解/错误语法。你想打电话给周围的人:测试(1,“a”,“b”,“c”);
var myStringArray = new string[] {"a", "b", "c"};
Test(myStringArray)