SORU
17 Ocak 2010, Pazar


Derin null kontrolü, daha iyi bir yolu var mı?

Not:Bu soru the .? operator in C# 6 / Visual Studio 2015 kullanılmaya başlamadan önce soruldu.

Biz de bu yollardan geçtik, kek gibi derin bir özellik var.buzlanma.çilek.eğer durum yok yani boş olup olmadığını kontrol etmemiz gereken loader. Böyle kısa devre eğer bir deyim kullanmaktır

if (cake != null && cake.frosting != null && cake.frosting.berries != null) ...

Bu çok şık değil ancak beni vurur, belki de tüm zincirin kontrol etmek daha kolay bir yolu olmalı ve eğer özellik/null bir değişken karşı gelirse bakın.

Bu yüzden mümkün biraz uzatma yöntemi kullanıyor yoksa dil bir özellik olacaktır, yoksa sadece kötü bir fikir mi?

CEVAP
17 Ocak 2010, Pazar


Yeni bir çalışma ekleyerek ele aldık " mı?." dil için istediğin mantığı vardır. (Ve şimdi eklendi; aşağıya bakın.) Yani, demek istiyorum

cake?.frosting?.berries?.loader

ve derleyici için kısa devre tüm kontrolleri oluşturmak.

C bar# 4 yapmak değildi. Dil farazi bir gelecek sürüm için belki de.

Güncelleme (2014): ?. operatör şimdi planned sonraki Roslyn derleyici sürüm içindir. Hala operatör tam sözdizimsel ve anlamsal analizi üzerinde bazı tartışmalar olduğunu unutmayın.

Güncelleme (Temmuz 2015):Visual Studio 2015'te serbest bırakıldı ve bir C ile gemiler# null-conditional operators ?. and ?[] destekleyen derleyici.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • POGProductionz

    POGProductio

    27 NİSAN 2012