Pertimbangkan skenario khas berikut:
if(myObject == null) {
myObject = new myClass();
}
Saya ingin tahu apa yang dipikirkan tentang penggantian berikut ini menggunakan operator null-coalescing:
myObject = myObject ?? new myClass();
Saya tidak yakin apakah saya harus menggunakan formulir kedua. Sepertinya steno yang bagus, tetapi myObject = myObject
konstruk di awal sepertinya seperti sedikit bau kode.
Apakah ini hal yang masuk akal untuk dilakukan, atau adakah steno yang lebih baik yang saya lewatkan? Atau mungkin, "Ini tiga baris, lupakan saja!"?
Sunting: Seperti telah disebutkan, mungkin menyebut ini skenario khas adalah sesuatu yang berlebihan. Saya biasanya menemukan bahwa saya menghadapi situasi ini ketika saya mengambil entitas dari database yang memiliki properti tipe referensi anak yang mungkin belum atau belum diisi:
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClass
harus memberikan public static readonly
anggota Empty
nilai dari jenisnya. Lihat String.Empty
di MSDN .
??=
operator?