Aşağıdaki tipik senaryoyu düşünün:
if(myObject == null) {
myObject = new myClass();
}
Sıfır birleştirici operatörü kullanarak aşağıdaki değiştirme hakkında ne düşündüğünü merak ediyorum:
myObject = myObject ?? new myClass();
İkinci formu kullanıp kullanmamam gerektiğinden emin değilim. Güzel bir steno gibi görünüyor, ama myObject = myObject
başlangıçtaki yapı biraz kod kokusu gibi görünebilir.
Bu yapılacak makul bir şey mi, yoksa kaçırdığım daha iyi bir stenografi var mı? Veya belki, "Bu üç satır, üstesinden gel!"?
Düzenleme: Bahsedildiği gibi, belki de bu tipik bir senaryo demek abartı bir şeydir. Genellikle henüz doldurulmuş olabilir veya olmayabilir çocuk başvuru türü özelliği olan bir veritabanından bir varlık alırken bu durumla karşılaşıyorum:
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClass
bir public static readonly
üyesini sağlamalıdır Empty
. String.Empty
MSDN'ye bakın .
??=
santral?