SORU
10 Kasım 2008, PAZARTESİ


Null Coalescing operator benzersiz yolları

C Boş birleşiyor operatör kullanmanın standart yolu biliyorum# varsayılan değerlerine ayarlamak için.

string nobody = null;
string somebody = "Bob Saget";
string anybody = "";

anybody = nobody   ?? "Mr. T"; // returns Mr. T
anybody = somebody ?? "Mr. T"; // returns "Bob Saget"

Ama başka ?? ne için kullanılabilir? Üçlü operatör olarak kullanışlı, ayrı daha kısa ve daha kolay okunur olmaktan görünmüyor:

nobody = null;
anybody = nobody == null ? "Bob Saget" : nobody; // returns Bob Saget

Çok daha az hatta sıfır birleşiyor operatör ile ilgili olduğunu göz önüne alındığında

  • Bir şey için ?? başka kullandın mı?

  • ?? gerekli mi, yoksa sadece üçlü operatörünü kullanmalısınız (bu aşina)

CEVAP
10 Kasım 2008, PAZARTESİ


Öncelikle, standart üçlü daha zincir için çok daha kolay

string anybody = parm1 ?? localDefault ?? globalDefault;

vs

string anyboby = (parm1 != null) ? parm1 
               : ((localDefault != null) ? localDefault 
               : globalDefault);

Ayrıca null-mümkün nesne bir değişken değildir: Eğer iyi çalışır

string anybody = Parameters["Name"] 
              ?? Settings["Name"] 
              ?? GlobalSetting["Name"];

vs

string anybody = (Parameters["Name"] != null ? Parameters["Name"] 
                 : (Settings["Name"] != null) ? Settings["Name"]
                 :  GlobalSetting["Name"];

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • The10HourMan

    The10HourMan

    28 EYLÜL 2012
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005