1. ホーム 
  2. 備忘録 
  3. C Sharp

可変長引数

可変長引数の使い方

C#では params キーワードを用いることでメソッドの引数の数を可変にすることができる

現状の C# では、params 修飾子を付けれるのは配列だけであり、IEnumerable<T>インターフェイスには未対応である

また、可変長引数にしたメソッドは引数なしで呼ぶこともできる。

この場合、呼び出された側のメソッドには空配列(長さ 0 の配列)が渡されるので null チェックは不要である

using System;

class Program
{
    static void Main()
    {
        // これらの合計値が欲しいとき
        int a = 1, b = 3, c = 22, d = 18, e = 16;

        // 可変長引数を用いると一度配列にいれなおさなくても、自動的に配列にしてくれる
        int max = Sum( a, b, c, d, e );

        Console.WriteLine( max ); // 60
    }

    static int Sum( params int[] values )
    {
        int sum = 0;
        for( int index = 0; index < values.Length; ++index )
        {
            sum += values[ index ];
        }
        return sum;
    }
}