C# の名前付き引数
C# の名前付き引数とは
メソッドに引数を渡す場合には通常、決められた順番で引数を渡すことで正しく引数を渡すことができます。
例えば Foo(int width, int height) というメソッドを呼ぶ時に Foo(10, 20) とすれば、最初の引数 10 が width の値として渡され、 二つ目の引数 20 が height の値となります。
C# の名前付き引数 (named arguments) を使うと、メソッドに引数を渡す時に引数に名前を付けることができます。
前述の例では Foo(width: 10, height: 20) として呼び出すことができます。
単に Foo(10,20) と書いたのでは、 Foo() メソッド側のことを調べないと width と height のどちらにどの値を渡したのか分かりません。しかし、名前付きで Foo(width: 10, height: 20) と呼び出せば意味はハッキリします。
名前付き引数では順序を変えられる
名前付き引数では、引数を渡す順序を変えることができます。
例えば、Foo(width: 10, height: 20) と Foo(height: 20, width: 10) は同じ意味になります。
名前付きと名前付きではない引数を混在させる場合
名前付き引数と名前付きではない引数を混在させる場合は、名前付き引数を後に書きます。
using static System.Console;
class Program
{
static void Main(string[] args)
{
Foo(10, length: 20, height: 30);
}
public static void Foo(int width, int height, int length)
{
WriteLine($"w={width},h={height},l={length}");
// w=10,h=30,l=20
}
}
名前付きの引数の後ろ (右側) に、名前なしの引数を書いてもコンパイル時のエラーになります。