コードインスペクション: 代入は使用されていません
コードの制御フローを分析することにより、ReSharper はフィールドとローカル変数の冗長なイニシャライザーを検出できます。 割り当てた値がどの実行パスでも次の割り当てが行われるまで使用されない場合、ReSharper は冗長なイニシャライザーを削除することを提案します。
このインスペクションは、あらかじめ使用されていなかったパラメーターに新しい値を割り当てるときにも機能します。 この場合、ReSharper は修正を提案しません。なぜなら、パラメーターをローカル変数に置き換えるべきか、または代入が誤りかどうかが明確でないからです:
void Bar(string param)
{
param = "something new";
Console.WriteLine(param);
}
冗長な割り当ては、異なる状況で発生する可能性があります。 例: 変数がデフォルト値で初期化されている場合、または以下に示すように、デフォルト以外の値が割り当てられても使用されない場合。 myDoc は XDocument の新しいインスタンスで初期化されていますが、次の行は a または b に割り当てられているため、最初に作成されたオブジェクトはガベージコレクタの新しいタスクに過ぎません。
このインスペクションが提案する クイックフィックスの例を以下に示します。
XElement GetRoot(bool flag, XDocument a, XDocument b)
{
var myDoc = new XDocument();
myDoc = flag ? a : b;
return myDoc.Root;
}
XElement GetRoot(bool flag, XDocument a, XDocument b)
{
XDocument myDoc;
myDoc = flag ? a : b;
return myDoc.Root;
}
2026 年 6 月 12 日