コードインスペクション: デフォルト値による冗長な引数
このインスペクションは、オプションの引数を持つメソッドを呼び出すコード内の場所を識別し、それらの引数のデフォルト値と同じ値を使用します。
以下に例を示します。
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 日