2 つの方法を使用できます: int? または Nullable で、どちらも同じ動作をします。問題なくミックスを作成することもできますが、コードを最もクリーンにするためのより良い選択です。
オプション 1 (?):
private void Example(int? arg1, int? arg2)
{
if (arg1.HasValue)
{
//do something
}
if (arg1.HasValue)
{
//do something else
}
}
オプション 2 (Nullable あり):
private void Example(Nullable<int> arg1, Nullable<int> arg2)
{
if (arg1.HasValue)
{
//do something
}
if (arg1.HasValue)
{
//do something else
}
}
C#4.0 から、より柔軟に同じことを行う新しい方法が登場しました。この場合、フレームワークはデフォルト値を持つオプションのパラメーターを提供します。このようにして、メソッドがすべてのパラメーターなしで呼び出された場合にデフォルト値を設定できます。
オプション 3 (デフォルト値あり)
private void Example(int arg1 = 0, int arg2 = 1)
{
//do something else
}