C# Nullable Değer Tipleri

Loading

Normalde .Net ortamında değer yüklü tipler null değer taşımazlar. Null değeri taşıyan bir nesne “Heap” te varlığını göstermez ve değeri olan tipler de “stack” te tutulduğu için null değer taşımazlar. Detay için bu makale okunabilir

Şimdi veritabanından çektiğimiz bir veri null da gelebilir bu durumda kod tarfında null olarak bunu karşılayamazsak ve yönetemezsek sorunlar yaşayacağız. Bunun için C# 2.0 versiyonu ile gelen generic mimari yapı bu sorunu çözmektedir. Bu mimaride Nullable<T> generic bir struct(yapı) olarak tanımlanmıştır. Artık değer yüklü tipler null taşıyabiliyor. Kütüphanesini inceleyebilirisiniz;

Önemli Not: Nullable tiplerde generic bir kısıtlama vardır. Sadece değer tiplere uygulanabilirler. Referans tiplerde kullanamayız yani Nullable<string> şeklinde bir tanımlama yapamayız.

Tanımlaması şu şekilde;

Örnek

  • HasValue değer varsa True yoksa False dönecektir.
  • GetValueOrDefault metodu geriye T tipinden bir değer döndürür. Eğer değer varsa değeri döndürür, null ise T tipinin default değerini yani 0 döner.
  • Value ise T tipinden bir değer döndürür. number1 de T tipi int olduğu için geriye int döner başka tip olsaydı onu dönecekti.

Örnek

  • Son olarak ta nullable olmayan bir tipe null değeri olan bir tip atamak istediğimiz de de ?? operatörü kullanırız.
  • (Null Coalescing Operator) denen bu operatör  uygulandığı değişkenin null olup olmadığını kontrol eder. Eğer null ise koşulda verilmiş değeri atar değilse değişkenin o andaki değerini döndürülür.

örnek

Sağlıcakla kalın…..

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Mesut Yiğit

Kaliteli bilgilerin bulunduğu, paylaşımcı ve her daim geliştirici bir öğrenimin benimsendiği Teknik ve diğer konularda kendime ve geleceğe notlar