コードインスペクション: デフォルト値による冗長な引数
このインスペクションは、オプションの引数を持つメソッドを呼び出すコード内の場所を識別し、それらの引数のデフォルト値と同じ値を使用します。
以下に例を示します。
void Foo(int required, [Optional] bool optionalBool, int optionalInt = 10)
{
// do something
}
void Test()
{
Foo(10, false, 10); //Warning: Redundant argument with default value
}
上記の呼び出しでは、両方のオプション引数 optionalBool と optionalInt にデフォルト値と同じ値が使われていますが、これは少し曖昧です。この呼び出しは Foo() の宣言で指定された デフォルト値 を使うことを意図しているのか、それともデフォルト値とは関係なく呼び出し元が指定した 値 を使うことを意図しているのでしょうか?
前者の場合は、デフォルト値を持つオプションの引数は宣言の後半で変更される可能性があるため、削除することができ、削除する必要があります。 そうでなければ、コメントでこのインスペクションを 抑制することができます。
// ReSharper disable RedundantArgumentDefaultValue
2026 年 6 月 12 日