関数void Test(int id, params string[] strs)
があります。
文字列の配列をstrs
引数としてどのように渡しますか?私が電話するとき:
Test(1, "a, b, c");
「strs」は単一の文字列(配列ではなく)として受け取ります。
実際、params
はC#コンパイラによって処理される単なる構文上のシュガーであるため、
この:
void Method(params string[] args) { /**/ }
Method("one", "two", "three");
これになります:
void Method(params string[] args) { /**/ }
Method(new string[] { "one", "two", "three" })
私はこれをテストし、それは動作します:
_ 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キーワードを使用すると、可変数の引数を取るメソッドパラメーターを指定できます。パラメーター宣言で指定されたタイプの引数のコンマ区切りリスト、または指定されたタイプの引数の配列を送信できます。引数を送信することもできません。メソッド宣言のparamsキーワードの後に追加のパラメーターは許可されず、メソッド宣言では1つのparamsキーワードのみが許可されます。
したがって、コンパイラエラーなしで、このTest(1);
のようなTest
メソッドを呼び出すこともできます。
これを試してください。
var myStringArray = new string[] {"a", "b", "c"};
Test(myStringArray)