次の典型的なシナリオを検討してください。
if(myObject == null) {
myObject = new myClass();
}
null合体演算子を使用した次の置換についてはどう思われますか?
myObject = myObject ?? new myClass();
2番目のフォームを使用する必要があるかどうかはわかりません。それはいい速記のmyObject = myObject
ように思えますが、最初の構造は少しコード臭いのようです。
これは合理的なことですか、それとも私が見逃しているより良い略記ですか?または、「3行です、乗り越えてください!」
編集:前述したように、おそらくこれを典型的なシナリオと呼ぶのは誇張の言葉です。私は通常、まだ参照されている場合とされていない場合がある子参照型プロパティを持つデータベースからエンティティを取得するときに、この状況に遭遇することを発見します。
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClass
提供する必要public static readonly
がありEmpty
ます。String.Empty
MSDNを参照してください。
??=
演算子はありませんか?