[C# 入門] 可変長の引数を持つメソッドをつくる(params)

paramsキーワードをメソッドの引数に付けると引数の数を可変にすることができます。
paramsキーワードを使えるのは配列だけです。

using System;
class Program
{
    public static void Main()
    {
        // 普通のメソッド
        var ary = new int[] { 1, 2, 3 };
        method1(ary);

        // 引数が可変なメソッド(カンマで区切って引数を指定)
        method2(1, 2, 3);

        method2(5, 6, 7, 8, 9);

        // 配列をそのまま渡すこともできる
        method2(ary);
    }

    // paramsを使わない場合は配列などで引数を受け取る
    static void method1(int[] values) {
        foreach (var i in values) Console.WriteLine(i);
    }

    // paramsを使って引数が可変なメソッドを定義
    static void method2(params int[] values) {
        foreach (var i in values) Console.WriteLine(i);
    }
}

固定の引数可変の引数の両方を定義する場合、一番最後の引数にparamsキーワードを付けます。可変にできる引数は一番うしろの引数だけです。

using System;
class Program
{
    public static void Main()
    {
        method("可変長引数のサンプル", 10, 1, 2, 3, 4);
    }

    // paramsを使って可変にできるのは一番後ろの引数だけ
    static void method(string txt, int number, params int[] values) {
        Console.WriteLine($"txt={txt}, number={number}, values={string.Join(" ", values)}");
    }
}
txt=可変長引数のサンプル, number=10, values=1 2 3 4

C# プログラミング講座に戻る

コメント

タイトルとURLをコピーしました