Programlama işine bir miktar aşina iseniz ya da etrafınızda
deneyimli programcılar var ise değer tipleri (value types), referans
tipleri (reference types) laflarını duymuş olmanız muhtemeldir. Kısaca
hatırlayacak olursak bir değer tipi doğrudan değerin kendisini
saklarken, referans tipi değerin saklandığı hafıza bölgesinin adresini
saklıyorlardı.
Gel gelelim oyle durumlar oldu ki degiskenin degersiz olmasi
gerekiyordu. Mesela bir kullanici sundugunuz seceneklerden herhangi
birini secmeyebilir. Bu durumda eskiden gider ilgili secime karsilik
gelen degiskene 0 ya da -1 atardik. Bu da secilmedigi anlamina gelirdi.
Ama .NET Nullable Types artik herhangi bir deger tipimiz de null
degerini tasiyabilir. (Tabi aslinda bu tipler referans tipi ama
unboxing yapmadan deger tipine atanabilirler)
Ornegin null alabilen integer tipine ornek vermemiz gerekirse kullanimi soyle ozetlenebilir:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 int? a = null;
6 int id = -1;
7
8 //1nci yontem
9 if (a.HasValue)
10 {
11 id = a.Value;
12 }
13 else
14 {
15 id = -10;
16 }
17
18 //2nci yontem
19 id = a.GetValueOrDefault(-10);
20
21 //3nci
22 id = a.HasValue ? a.Value : (int)-10;
23 }
24 }
Not: ? isareti null deger alabilen tiplerin kisa gosterimidir. Eger
bir yerde System.Nullable<int> gorursenin bu int? ile ayni seydir.
Bu yazıyı ilk değerlendiren siz olun
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5