rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 4.0 - 省略可能な引数 (オプション引数)

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

省略可能な引数 (オプション引数)

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments
 メソッドなどのパラメーターに規定値を設定し、省略可能にできる。

static void Main(string[] args)
{
    // 引数を省略しないパターン
    AddAndWriteLine(10, 20, "計算結果 => {0}"); // 計算結果 => 30

    // 引数 format を省略したパターン
    AddAndWriteLine(10, 20);                   // 結果は 30 です.

    // 引数 b、format を省略したパターン
    AddAndWriteLine(1);                        // 結果は 3 です.
}

// 引数 b と、format は初期値が設定されているので省略が可能
static int AddAndWriteLine(int a, int b=2, string format="結果は {0} です.")
{
    var c = a + b;
    Console.WriteLine(string.Format(format, c));
    return c;
}