1. はじめに
- C#のメソッドで引数を省略しているコードを見かけたので、記載方法を知りたい
2. 開発環境
- C#
- .Net 6
- Visual Studio 2022
- Windows 11
3. 単一引数の場合
- 引数の後に
=
でデフォルト値を指定する - 値型、参照型のどちらでも使用できる
public static void MethodOne(int number = 1)
{
Console.WriteLine(number);
}
public static void Main()
{
// 引数を指定する場合
MethodOne(100);
// Expected output:
// 100
// 引数を省略した場合
MethodOne();
// Expected output:
// 1
}
4. 複数引数の場合
- 基本的に単一引数と同じ記述になる
public static void MethodTwo(int number = 1, string name = "DefaultName")
{
Console.WriteLine($"Number:{number}, Name:{name}");
}
public static void Main()
{
// 引数をすべて指定する場合
MethodTwo(100, "MyName");
// Expected output:
// Number:100, Name:MyName
// 引数すべてを省略した場合
MethodTwo();
// Expected output:
// Number:1, Name:DefaultName
// 第2引数のみ省略した場合
MethodTwo(100);
// Expected output:
// Number:100, Name:DefaultName
}
5. default演算子の使用
- C#型の既定値をデフォルト値として定義できる
- 参照型はnullがデフォルトとなる
public static void MethodDefault(int number = default)
{
Console.WriteLine(number);
}
public static void Main()
{
// 引数を指定する場合
MethodDefault(100);
// Expected output:
// 100
// 引数を省略した場合
MethodDefault();
// Expected output:
// 0
}
6. 参考文献