私には関数void Test(int id, params string[] strs)
があります。params string []を持つ関数にstring [] arrayを代入する
文字列をstrs
引数として渡すにはどうすればよいですか?私が電話したとき:
Test(1, "a, b, c");
"strs"は単一の文字列(配列ではない)として扱われます。
私には関数void Test(int id, params string[] strs)
があります。params string []を持つ関数にstring [] arrayを代入する
文字列を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
}
あなたはMSDN website on paramsからちょうどこのTest(1, <Some string[]>);
などの編集
それを呼び出すことができます。
のparamsキーワードができますメソッドのパラメータを指定する可変引数の数は です。パラメータ宣言で指定された型の 引数のコンマ区切りリスト、または指定された型の引数の配列 を送信できます。また、 引数を送信することもできません。メソッド宣言でパラメータ のキーワードの後に追加のパラメータは使用できません。また、メソッド宣言で許可されるparamsキーワードは です。
したがって、Test
メソッドをTest(1);
と呼び出すこともできますが、コンパイラエラーは発生しません。
このように、params
は、C#コンパイラによって処理だけ糖衣構文です:
void Method(params string[] args) { /**/ }
Method("one", "two", "three");
はこのようになります。
void Method(params string[] args) { /**/ }
Method(new string[] { "one", "two", "three" })
はこれを試してみてください。
var myStringArray = new string[] {"a", "b", "c"};
Test(myStringArray)
現在のコードが機能しない場合は、どのようなエラーが発生していますか? – NilsH
あなたはどの言語を使っていますか? – Simon
私はC#を使用しています。私は配列文字列全体をparams文字列[]に代入するだけで解決することができた問題です。 –