Skip to content

Latest commit

 

History

History
95 lines (59 loc) · 3.34 KB

2010-09-26-nullable-tipler.md

File metadata and controls

95 lines (59 loc) · 3.34 KB
layout title date author comments category tags
post
Nullable Tipler
2010-09-26 15:00
engin.polat
true
C#
class
generic
hasvalue
nullable
public
read-only
sadece okunabilir
static
System.InvalidOperationException
system.nullable
T
value
value type

Nullable tipler, ilgili tip'in değer aralığına ve karakteristiğine sahip olmakla birlikte ek olarak null değer de içerebilen yapılardır.

Basit olarak, değişkenin değer içerip içermediği bilgisini saklar.

Nullable tipler, System.Nullable<T> türündedirler (T, değer tipi olmalıdır)

Unutmayın! Sadece değer tipleri (value type) nullable olabilir.

C# dili değer tipi listesi'ne daha önce yazdığım makale veya MSDN üzerinden ulaşabilirsiniz.

C# dilinde, Nullable tipte değişkenler iki şekilde tanımlanabilir.

Birinci yöntemde, System.Nullable generic tipini ilgili değer tipi ile birlikte yazabiliriz;

System.Nullable<int> adet; System.Nullable<bool> sonuclandi;

İkinci yöntem, daha çok kullanılır ve daha kısa yazım şekline sahiptir. İlgili değer tipinin yanına soruişareti (?) karakteri koyarak yazılır;

int? adet;
bool? sonuclandi;

Bir nullable değişken, tanımlandığı anda null değerini içermez, sizin null eşitlemesini yapmanız beklenir;

int? adet = null;

Nullable tipteki bir değişkene değer ataması yapmak, normal bir değişkene değer ataması yapmak ile aynıdır.

adet = 100;

Nullable bir değişkenin değer içerip içermediğini anlamanın iki yolu vardır.

Birinci yöntemde, değişkenin null olup/olmadığı kontrol edilebilir.

if (adet != null)
{
    /// değeri var
}

Eğer değişken null değilse, değer içeriyor demektir.

İkinci yöntemde, değişkenin System.Nullable tipinden gelen sadece-okunabilir (read-only) HasValue özelliği kontrol edilir.

if (adet.HasValue)
{
    /// değeri var
}

Eğer değişken değer içeriyorsa, değeri okumak için, değişkenin System.Nullable tipinden gelen Value özelliği kullanılır.

Eğer değer içermeyen nullable bir değişkenin Value özelliğinden değer okumaya çalışırsanız, System.InvalidOperationException istisnası fırlatılır.

using System;

class NullableTipTest
{
    public static void Main()
    {
        int? adet = null;

        if (adet.HasValue)
            Console.WriteLine("adet değeri: " + adet.Value);
        else
            Console.WriteLine("adet değeri yok.");

        adet = 10;

        if (adet.HasValue)
            Console.WriteLine("adet değeri: " + adet.Value);
        else
            Console.WriteLine("adet değeri yok.");
    }
}


Yukarıdaki kodun çıktısı şöyle *olacaktır*;



>adet değeri yok.
adet değeri: 10