ReSharper 2026.1 Help

コードインスペクション: 'if' ステートメントは '??=' 代入として書き直すことができます

値を代入したり、引数を渡したり、識別子の NULL 可能性に基づいてメソッドから戻る場合は、これらの場合に使用できる最もわかりやすい構文は ?? (null-coalescing) 演算子です。

そのため、ReSharper は、 if 式で変数が null か確認した後に代入が行われている場合、 ??= 演算子を使用して代入を簡略化することを提案します。

class TypeCheck { Type CheckType(object obj) { if (obj == null) obj = new { }; return obj.GetType(); } }
class TypeCheck { Type CheckType(object obj) { obj ??= new { }; return obj.GetType(); } }

両方のオペレーターのパフォーマンスについて言えば、目に見える違いはありません。 実際、 ?? の方がほんの少しだけ高速です。

2026 年 6 月 12 日