ReSharper 2026.1 Help

コードインスペクション:呼び出し元の引数式パラメーターに冗長な引数が渡されています。

C# 10 で導入された [CallerArgumentExpression] 属性を使用すると、メソッドパラメーターに渡される式の文字列表現をキャプチャーできます。 これは、ログ記録、検証、デバッグに役立ちます。

この属性でマークされた API を使用している場合、対応する引数の文字列表現を別の引数で渡す必要はありません。 そのため、ReSharper はこれを冗長なものとして報告し、削除を提案します。

以下の例では、属性は Write メソッドの str パラメーターに適用されています。 つまり、 str の引数を指定せずに Write を呼び出すと、コンパイラーは num に提供された式の文字列表現を自動的に使用します。 str に渡される引数 "a + b" は、 num に渡される式 a + b の文字列表現と一致するため、2 番目の引数は冗長になり、安全に削除できます。

using System; using System.Runtime.CompilerServices; class RedundantArgument { void Write(int num, [CallerArgumentExpression("num")] string str = "") => Console.WriteLine(str); void Test(int a, int b) => Write(a + b, "a + b"); }
using System; using System.Runtime.CompilerServices; class RedundantArgument { void Write(int num, [CallerArgumentExpression("num")] string str = "") => Console.WriteLine(str); void Test(int a, int b) => Write(a + b); }
2026 年 6 月 12 日