Tags: , , , , | Categories: Programlama Posted by okutbay on 19.11.2008 11:34 | Yorumlar (0)

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

Yorumlar

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading