コードインスペクション: '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 日