合体演算子を(とにかく私にとって)少し奇妙な方法で使用するコードの断片が増えているのを見てきましたが、この使用法について考えていますか?
例:
string foo = null;
void bar(){
foo = foo??"hello";
}
それ以外の
string foo = null;
void bar(){
if (foo==null)
foo="hello";
}
これは、null 合体演算子の完全に合理的な使用のように思えます。どちらの方法でも再割り当てされるため、最初のコード スニペットとはまったく同じではないことに注意してください。変数ではなくプロパティfoo
を実際に使用している場合、これは重要です。現在の値に関係なく、プロパティ セッターが呼び出されます。
null オブジェクトをチェックする重要な機能を提供しながら、コードを短くして読みやすくします。
主な差別化要因は、これ??
が演算子であるため、他の式で使用できることです。どこで使用するかは、完全に開発者次第です。
Coalesce Operator が役立つかもしれない驚くべき状況。エリックに感謝します。 リンクとエリックの回答に従ってください