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
    // AddAndWriteLine(10, "計算結果 => {0}", 20);          // <- これはできない(名前付き引数でない場合はパラメーターの順番を変えられない)
    AddAndWriteLine(10, format: "計算結果 => {0}", b: 20);  // <- パラメーターを任意の順序で指定できる
    AddAndWriteLine(10, format: "計算結果 => {0}");         // <- 途中のパラメーターを省略できる
    AddAndWriteLine(10, 20, format: "計算結果 => {0}");     // 引数の意味が分かりやすくなる

static int AddAndWriteLine(int a, int b = 2, string format = "結果は {0} です.")
{
    var c = a + b;
    Console.WriteLine(string.Format(format, c));
    return c;
}