Buna null birleştirme (coalescing) operatörü diyorlar.
?: koşul operatörünün bir başka şekli.
Eğer verilen birinci değer null ise sonrakini, o da null ise sonrakinin değerini seçiyor ve varsa böyle devam ediyor. Bir çeşit kısa devre operatörü olarak çalışıyor.
Örneğin:
Object a = b ?? c ?? d ?? e;
Örnekte a değişkenine null değilse b değişkeninin değerini, null ise c'nin değerini, o da null ise d değişkeninin değerini atıar ve böyle devam eder.
Bunu ben web sayfalarında yapılan isteklerde değer null ise varsayılan bir değer atamak için kullandım.
Şöyle:
string islem = Request.QueryString.Get("islem") ?? "Ekleme";
Örnekte yapılması istenen işlem olarak
QueryString.Get bir değer döndürürse döndürdüğü değeri (adres çubuğundan gelen sorgu dizesindeki islem isimli anahtarın değerini), eğer null döndürürse işlem olarak "Ekleme" yi kabul ediyorum.
Üstteki örnekteki kullanımı ?: operatörü ve if ile şöyle yaparız.
string islem = Request.QueryString.Get("islem");
islem = islem ? "Ekleme";
string islem = Request.QueryString.Get("islem");
if (islem == null)
islem = "Ekleme";