C#基本

[C#] メソッドに省略可能な引数を定義する方法(デフォルト引数)

2021年9月14日

メソッドに省略可能な引数を定義する方法です。

省略可能引数を使うと、メソッドの引数を省略することができるようになります。
(※ VB.NETだと Optional引数(オプション引数)などと呼ばれます)

サンプル

例)省略可能引数でメソッドを呼び出す。

例として、以下のメソッドを呼び出してみます。


//引数1 + 引数2の結果を返すメソッド(第2引数のデフォルト値は10。)
public int plus(int valA, int valB = 10)
{
  return valA + valB;
}

普通に呼び出した場合と、省略可能引数で呼び出した場合の比較です。


//普通に呼び出した場合
int ans1 = plus(5, 2);

//名前付き引数で呼び出した場合
int ans2 = plus(5);

結果

ans1 → 7
ans2 → 15

引数を省略した場合、指定したデフォルト値が採用されます。

備考

  • 省略可能引数にするには、メソッドの引数を定義する時にデフォルト値を指定します。
    (デフォルト値を指定した引数が省略可能となります。)
  • 省略可能引数に指定した引数の後ろに、通常の引数は指定できません。
    (例)
     method(通常引数, 省略可能引数) → ○
     method(省略可能引数, 省略可能引数) → ○
     method(通常引数, 省略可能引数, 省略可能引数) → ○
     method(通常引数, 省略可能引数, 通常引数) → ×
     method(省略可能引数, 省略可能引数, 通常引数) → ×
  • 省略可能引数だとしても、引数の先頭や途中のみ省略することはできません。
    (例)method(省略可能引数, 省略可能引数, 省略可能引数) 
     ↑このような定義だった場合、
      method(1, 2, 3); ←この呼出し方はOKですが、
      method(, , 3);、method(1, , 3); ←この呼出し方はNGです。

関連記事

-C#基本
-,