8 Şubat 2018 Perşembe

C# ?? Operatörü


Bir önceki makalemizde boş bırakılabilen tiplerden bahsetmiştik. O yazıdan hatırlanacağı üzere ? operatörü boş bırakılabilen (nullable types) tipler deklare etmemizi sağlıyordu. ?? operatörü de boş bırakılabilen tiplerle ilgilidir.

Aşağıdaki if else yapısını bilmeyen yoktur:

bool b = true; string str = b ? "true" : "false"; //Burada str = "true" değerini alacaktır

?? operatörü de aslında yukardaki ifadeyi nullable tipler için gerçekler. Daha açık ifadeyle; nullable bir tip nullable olmayan bir tipe atanmak istendiğinde hata fırlatmanın önüne geçmek için bu ifade kullanılabilir.

Aşağıdaki örneği inceleyelim:

using System; class NullableTypesDemo { static void Main() { int? x = null; int y; y = x ?? 0; Console.WriteLine("x boş iken y'nin değeri: " + y); x = 10; y = x ?? 0; Console.WriteLine("x'e atama yapıldıktan sonra y'nin değeri: " + y); } }

Bu kodun çıktısı aşağıdaki gibi olacaktır:

x boş iken y'nin değeri: 0
x'e atama yapıldıktan sonra y'nin değeri: 10

Görüldüğü üzere ?? operatörü aslında nullable bir tipin null değer içerip içermediğini, eğer null ise default bir değer atayabilmeyi sağlar. Değer mevcut ise nullable değişkenin değeri, değer mevcut değilse ?? operatörünün sağındaki değer (default) ataması yapılır.

Umarım faydalı olabilmişimdir..

Bir sonraki makalede görüşmek üzere, sağlıcaklakalın..


Paylaş:

0 yorum:

Yorum Gönder

Bu Blogda Ara