?? operatörü (null coalescing operator) ve Nullable yapısı

C# 2.0 ile birlikte Nullable<T> yapısının hayatımıza girmesiyle birlikte yeni bir operatör daha kazandık. Özellikle veritabanındaki alanların karşılanması amacıyla eklenen Nullable<T> , değer tipteki veri tiplerinin null olabilmesi için kullanılır.

Tanımlaması :
Nullable<int> musteriNo = new Nullable<int>();
ya da
int? musteriNo = new int?();
şeklinde yapılabilir ikiside aynı sonucu veren kodlardır birincisi asıl sınıf ile çalışmamızı sağlamakta iken, diğeri yazımı kolaylaştırmak için getirilen ? ile yapılmaktadır.

Gelelim ?? operatörüne , Nullable<T> yapısının hayatımıza girmesiyle HasValue ve Value property lerininde kullanımına sıkça rastlar olmuştuk.

HasValue o değişken üzerinde bir değer olup olmadığını bize söylüyor.
Value ise o değere ulaşmamızı sağlıyordu.

Bir zaman sonra bu kullanımın aslında çok fazla kontrol gerektirdiğini farketmemle birlikte. ?? operatorü ile tanıştım. Önceden aşağıdaki gibi yazdığım kod satırlarını ?? kullanarak daha kısa sürede yazmaya başladım. ?? operatörü solundaki ifade null olduğunda sağında yazılan default değeri vermektedir. 

Örnek (HasValue ve Value ile kullanım):

int? musteriNo = new int?();
if(musteriNo.HasValue)
{
 int siparisMusteriNo = musteriNo.Value;
} 

Örnek (?? operatörü ile kullanım):

int? musteriNo =new int?();
int siparisMusteriNo = musteriNo ?? 0;

2 comments to ?? operatörü (null coalescing operator) ve Nullable yapısı

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">