C# null Coalescing Operator (??)

Sunday, February 03, 2008 9:05:39 PM (GTB Standard Time, UTC+02:00)

Daha önce kullandınızmı bilmiyorum fakat ternary operatörünün bir fan’ ı olarak C# 2.0 ile birlikte gelen null Coalescing Operator açıkçası çok hoşuma gitti.

Ternary Operatörünü hepimiz zaten bolca kullanmaktayız :

string Sonuc = (KullaniciAdi == null) ? “Kullanıcı Adı Bulunamadı” : KullaniciAdi;

Bu expression ‘ ı null Coalescing Operator ile çok daha kısa şekilde ifade edebiliyorsunuz.

string Sonuc = KullaniciAdi ?? “Kullanıcı Adı Bulunamadı”;

Mantık şudur ki eğer işin içerisinde null kontrolü varsa compiler ilk operand’ ın null olup olmadığını kontrol ediyor.

Eğer ilk operand null değilse expression’ ın sonucu ilk operand oluyor. Eğer null ise sonuç ikinci operand oluyor.

Genelde kullandığımız klasik Entity katmanında çok işe yarıyor.

Musteri adında bir entity sınıfımız ve ID üzerinden Musteri getiren bir Facade metodumuz olsun.
olduğunu düşünelim.

Musteri mst = GetMusteriByID(id) ?? new Musteri();

Eğer metodun sonucu null değil ise mst’ ye metotdan dönen instance atanıyor. null ise new Musteri(); çalıştırılıyor. :-)

Comments are closed.