[C#] C言語との違い (可変個引数)

parameter array あるいは 可変個引数
C言語の … に近い使い方を実現できる。
関数宣言では配列にparamsを付ける。
呼び出し元が可変個の引数を書いた場合、それを配列として受けますよ、という宣言となる。

static double CalculateAverage(params double[] values)
{
Console.WriteLine("You sent me {0} doubles.", values.Length);
double sum = 0;
if(values.Length == 0)
return sum;
for (int i = 0; i < values.Length; i++)
sum += values[i];
return (sum / values.Length);
}

呼び側は

double_res = CalculateAverage(1.1, 2.2, 3, 4.0);
another = CalculateAverage(1.0, 5.0, 3.1, 1.1, 1.2);

のように呼ぶ.
制限としては、関数引数でparams宣言できるものは1個で、最後の引数であること。
// ソースコードはいずれも参考文献(Pro C# 2008 and the .NET Platform 3.5)から引用。

広告
%d人のブロガーが「いいね」をつけました。