1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#でメソッドを呼び出す時に引数を省略可能にしたい

Posted at

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. 参考文献

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?