私はJavaに取り組み、.Netテクノロジーを初めて使用しました
変数入力パラメーターを受け入れる関数をC#で宣言することは可能ですか?
次のJava構文に似たC#構文はありますか?
void f1(String... a)
回答:
はい、C#には同等のvarargsパラメーターがあります。これらはパラメーター配列と呼ばれ、params修飾子で導入されます。
public void Foo(int x, params string[] values)
次に、それを呼び出します:
Foo(10, "hello", "there");
Javaと同様に、このように変化する可能性があるのは最後のパラメーターにすぎません。(Javaと同様に)のパラメーターはparams object[] objects、型の単一の引数がobject[]再度ラップされるかどうかを覚えておく必要があるため、混乱を招きやすいことに注意してください。同様に、null許容型の場合、の単一の引数がnull配列参照または単一の配列要素として扱われるかどうかを覚えておく必要があります。(必要な場合にのみコンパイラーが配列を作成すると思いますが、私はそれを覚える必要がないコードを書く傾向があります。)
paramsを見てください(C#リファレンス)
paramsキーワードを使用すると、可変数の引数を取るメソッドパラメータを指定できます。
パラメーター宣言で指定されたタイプの引数のコンマ区切りリスト、または指定されたタイプの引数の配列を送信できます。引数を送信することもできません。
メソッド宣言のparamsキーワードの後にパラメーターを追加することはできません。メソッド宣言ではparamsキーワードを1つだけ使用できます。
例に示すように、メソッドは次のように宣言されています
public static void UseParams(params int[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}
として使用
UseParams(1, 2, 3, 4);