nullable ifadesi, değer tipi (value type) bir değişkenin değersiz (null) olarak kullanılabilmesi anlamına gelmektedir. Pratikte veritabanı ile birlikte çalışan uygulamalarda bir değer veritabanında olmadığı için ya da anlık iletişim sorunları nedeniyle null olarak gelebilmektedir. Bu durumda nullable sayesinde uygulamanın hata vermesi yerine değişkenin null değer alabilmesine olanak tanınabilmektedir.
Bir değişkenin nullable olabilmesi için tanımlanması esnasında veri tipinin yanına ? (soru işareti) eklenir.
int a = null; //hata
int? b = null; //OK
Not: Bir değişkenin NULL olması ile hiç değer atanmamış olması aynı şeyler değildir.
int? b;
System.Console.WriteLine(b == null); //HATA
Hata Çıktısı: Use of unassigned local variable 'b'
Örnek 1: b değişkeni null mudur kontrol edelim.
int? b = null;
System.Console.WriteLine(b == null); //True
Örnek 2: b değeri null ise b'ye 5 değerini aktaralım.
int? b = null;
if (b == null)
b = 5;
System.Console.WriteLine(b); //5
Not: C# programlama dilinde null ise değer ata işleminin kısayol operatörü olarak ?? kullanılabilir. Bu operatöre de null coalescing operator adı verilir.
int? b = null;
// if (b == null)
// b = 5;
b = b ?? 5; // eğer b null ise b'ye 5 ata
System.Console.WriteLine(b); //5
Önceki benzer yazılarımdan bazıları için;
bkz: C# Enum Nedir? Kullanımı ve Örnekleri
bkz: C# Struct (Yapı) Nedir?
bkz: C# metod parametresi olarak dizi göndermek
bkz: C# dizinin eleman sayısını bulmak
bkz: C# ile string'in başına ekleme yapmak (4 farklı çözüm)
bkz: C# ile yazıyı tersten yazdırmak