Null değer alabilen tam sayılar (Nullable Integers)

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:

class Program
{
    static void Main(string[] args)
    {
        int? a = null;
        int id = -1;

        //1nci yontem
        if (a.HasValue)
        {
            id = a.Value;
        }
        else
        {
            id = -10;
        }

        //2nci yontem
        id = a.GetValueOrDefault(-10);

        //3nci
        id = a.HasValue ? a.Value : (int)-10;
    }
}

Not: ? isareti null deger alabilen tiplerin kisa gosterimidir. Eger bir yerde System.Nullable gorursenin bu int? ile ayni seydir.

Yazı oluşturuldu 141

Bir yanıt yazın

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön