転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

C#を勉強する⑨_可変長引数、オプション引数、コンストラクタ定義について

可変長引数

メソッド定義で、引数の数を限定しない書き方。引数は、配列として扱う。

public static void Main(string[] args) {

    // 3が出力される
    Console.WriteLine(LastNum(1, 2, 3));

    // 5が出力される
    Console.WriteLine(LastNum(1, 2, 3, 4, 5));

}

public static int LastNum(params int[] args) {

    return args[args.Length - 1];

}

オーバーロードのオプション引数

オーバーロードのオプション引数を使えば、メソッドの呼び出し方でデフォルト値を渡すことができる。

public static void Main(string[] args) {

    // 5fault3 と出力
    DoSomething(5);

    // 5success3と出力
    DoSomething(5, "success");

    // 5success15と出力
    DoSomething(5, "success", 15);

}

public static void DoSomething(int num, string message = "fault", int retryCount = 3) {

    Console.WriteLine(num + message + retryCount);

}

複数のコンストラクタ定義

コンストラクタ内で、引数の違うコンストラクタを呼ぶ場合の書き方。書く行は少なくて、引数の指定が色々できるので便利。

public Sale(int m, int n)
    : this(m, n, 0, 0) { // 引数4つのコンストラクタを呼び出し

}

public Sale(int m, int n, int b)
    : this(m, n, 0, b) { // 引数4つのコンストラクタを呼び出し

}

public Sale(int m, int n, int a, int b) {

}