コードインスペクション: テキスト引数でシンボルを解決できません
このコードインスペクションは、さまざまな .NET Framework の契約に従い、文字列リテラルで使用されている識別子名を検証します。たとえば、 System.Diagnostics.DebuggerDisplayAttribute や System.ArgumentException およびその継承クラスのコンストラクター引数などです。
System.ArgumentException とその継承との連携方法を見てみましょう。 System.ArgumentException およびその派生物(たとえば、 System.ArgumentNullException、 System.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 日