ReSharper 2026.1 Help

コードインスペクション: テキスト引数でシンボルを解決できません

このコードインスペクションは、さまざまな .NET Framework の契約に従い、文字列リテラルで使用されている識別子名を検証します。たとえば、 System.Diagnostics.DebuggerDisplayAttributeSystem.ArgumentException およびその継承クラスのコンストラクター引数などです。

System.ArgumentException とその継承との連携方法を見てみましょう。 System.ArgumentException およびその派生物(たとえば、 System.ArgumentNullExceptionSystem.ArgumentOutOfRangeException など)のコンストラクターの paramName パラメーターは、問題の原因をすばやく見つけるのに役立つスタックトレースに表示されるため、例外の原因となったパラメーターの名前を予期します。 したがって、引数内のリテラルが例外がスローされるメソッドのいずれのパラメーターにも該当しない場合、ReSharper は警告を発行します。 さらに、ReSharper は、下記の例に示すように、さまざまなシグネチャー内の paramName パラメーターの位置を把握しています。

public void Foo(object value) { if(value == null) // Warning for unresolved symbol, where paramName is the first argument throw new ArgumentNullException("bad value", "value is null"); if(!(value is string)) // Warning for unresolved symbol, where paramName is the second argument throw new ArgumentException("bad value", "value is not string"); // do something }
2026 年 6 月 12 日