次のようなメソッドを定義するとします。
public static void ListInts(int[] inVals)
{
for (int i = 0; i < inVals.Length; i++)
{
Console.WriteLine("{0}", inVals[i]);
}
}
このように呼び出してみると、明らかにエラーが発生し、コードはコンパイルされません。
ListInts();
メソッド 'ListInts' には 1 つのパラメーターがありますが、0 の引数で呼び出されます
しかし、次のようにメソッド定義を変更すると:
public static void ListInts(params int[] inVals)
{
for (int i = 0; i < inVals.Length; i++)
{
Console.WriteLine("{0}", inVals[i]);
}
}
エラーはありません。なぜこれが起こっているのか知りたいです。そして、2 番目のコードがエラーなしでコンパイルされるのはなぜですか? params
キーワードを使用すると、舞台裏で何が起こるでしょうか?