Üye Kayıt Üye Giriş

C# Nullable Types


C# Nullable Types

 

İyi geceler arkadaşlar yeni gelen projenin Css' ini yazıyordum vakit hayli geç olduğu için yatmaya
karar verdim tam bu esnada kafama dank diye uzun zamandır makale yazmadığım aklıma geldi tabi buna
makale denilirse :) neyse bir c# 2.0 yeniliği olan nullable typeslardan bahsetmek istiyorum..
Veritabanı işlemlerinde çoğu zaman sıkıntı yaratan, değer tipleri (int, bool, ..) için "null" değer gönderememe hikayesini çözen bir yenilik. artık bir değer tipi (value type), hiç bir değer atanmamış (undefined) bir durumda kalabiliyor. eskiden bir ilkel tipimizin illa bir değeri olması gerekiyordu. vermeseniz de ön tanımlı değerini alıyordu.

nullable : varsayılan olarak value type degiskenleri null gecemezsiniz. aldıgınız hatada bu acıkca belirtilir.
ancak yapılan bazı işlemlerde deger yakalama sırasında gelen deger eger null ise projelerimiz patlayabilir. bunu engellemek null gelen deger varsa yerine varsayılan bir degisken atayabilmek için bu tip kullanılır..

"nullable" bir tipi şöyle tanımlıyoruz:


string kelime = null;
int sayim = null;
int? sayim = null;


Bir nullable type değişkeninin değer içerip içermediğini şöyle anlayabiliriz:
if (x.hasvalue)" veya "if (x!=null)" denilerek değer içerip içermediği denetlenebilir.

Dipnot taklitlerden sakınınız:

int? a = null;
object b = a;
return b==null;


satirlarindan true degerini dondurecek reference type taklidi yapabilen strong valued tiptir.

Şöyle bir kullanımda var..

int? a = null;
int defaultval = 10;
console.writeline("anın değeri: " + (a ?? defaultval));
diyelimki "a" değişkenine veritabanından değer gelmedi.. "a" haliyle null kaldı
bunun yerine a ?? yani harbiden null ise defautval değişkeninin değerini göster demek oluyor..
bir nevi bir patlama gerçekleşmemesi için kod sigortası..

tabi bunu şöylede yapabilirdik..

getvalueordefault() methodu degiskenin uzerinde deger varsa onu al yoksa varsayılan atamam yap..
int ugurlusayi = gelenID.GetValueOrDefault(5);

Buda generic hali:
Nullable<int> gelenID = new Nullable<int>();

Ayrıca DBNull.Value diye birşey vardırki bu parametre ile db den gelen nesnenin null olup olmadığını
kontrol etme amacı ile kullanılır.
if(DBNull.Value!= datarow["alanadi"])
gibisinden..

Bu saatte benden bu kadar iyi geceler tekrardan..

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER