C# - Nullable Tipler

"null", normal veri değerlerinden başka boş değer atanabilecek özel veri türüdür. Örnek olarak: int? veri türü, -2,147,483,648 ile 2,147,483,647 arasında herhangi bir tamsayı değerini dışında "null" olarak atanabilir.

[DataTipi?] [Değişken Adı] = [Değer];

Yukarıdaki syntax (sözdizimin) de "DataTipi?", ilgili değişkenin istenirse "null" yani boş bir değer alabileceğini belirtmektedir.

Aşağıdaki kodu inceleyelim..

using System;
namespace Demo
{
      class Deneme
      {
        static void Main(string[] args)
        {
            int? degisken1 = 10;
            int? degisken2 = null;
            bool? degisken3 = false;
            bool? degisken4 = null;            

            Console.WriteLine("Value of degisken1: {0}", degisken1);
            Console.WriteLine("Value of degisken2: {0}", degisken2);
            Console.WriteLine("Value of degisken3: {0}", degisken3);
            Console.WriteLine("Value of degisken4: {0}", degisken4);

            Console.ReadKey();            
        }
    }
}

Yukardaki kodun çıktısı şu şekilde olacaktır..

Value of degisken1: 10
Value of degisken2:
Value of degisken3: False
Value of degisken4:

Null Birleştirme (Coalescing) Operatörü

Null birleştirme operatörü "??" şeklindedir. İki işleneni vardır ve operatör boş değilse ilk işlenenin değerini döndürür. Ancak, ilk işlenen boşsa, operatör ikinci işlenenin değerini döndürür.

Aşağıdaki kodu inceleyelim..

using System;
namespace Demo
{
  class NullCoalescing
  {
     static void Main(string[] args)
     {
        int? sayi1 = 2;
        int? sayi2 = null;
        int? sayi3 = 5;

        Console.WriteLine(" sayi1 veya sayi2: {0}", sayi1 ?? sayi2);
        Console.WriteLine(" sayi2 veya sayi3: {0}", sayi2 ?? sayi3);

        Console.ReadKey();
     }
  }
}

Yukardaki kodu çıktısını görelim..

sayi1 veya sayi2: 2
sayi2 veya sayi3: 5

Yukarıdaki kodda "sayi1,sayi2,sayi3" değşkenleri yaratılmış "sayi2" değişkenine boş değer atanmıştır.

"sayi1 ?? sayi2" kodunda "sayi1" değişkeni null ise "sayi2" değerinin atanması söylenmektedir. "sayi1" boş olmadığı için "sayi1" değeri ekrana yazdırılır. Aynı şekilde "sayi2 ?? sayi3" kodunda ise "sayi2" boş ise "sayi3" değerinin ekrana yazdırılması belirtilmektedir. "sayi2" boş olduğu için "sayi3" değeri ekrana yazdırılır.



İlginizi Çekebilir

C# - Namespace

C# - Alan (Field)

C# - Aşırı Yükleme (Overload)

C# - Interface

C# - Değişkenler