13 Nisan 2013 Cumartesi

C Sharp Uygulamlar Herhangi bir Değer Türünü Null Olarak Tanımlama



KONU : C Sharp Uygulamalar - C Sharp ( C# ) Herhangi bir değer türü null olarak tanımlayabilme. int, char , bool , double gibi değer türünde olan değişkenleri null olarak tanımlama.





UYGULAMAYI İNDİR



Herhangi bir değer türü null türü için kullanılması için  tipten sonra  ? işareti kullanılması gerekir. 

Böylelikle değer türünde tanımladığımız değişkenin null olup olmadığını kontrol edebiliriz 


            int? sayi = 10000; 
            double? pi = 3.14; 
            bool? SayiMi = null; 
            char? harf = ''; 

bu şekilde tanımladığımızda işlem yaparken null kontrolü yapmalıyız.

Çünkü eğer değer türü null atanmış ve null olarak kalmışsa exception hatası oluşur. 

Mesela sayi değişkenini null olarak oluşturalım. 

int? sayi = null; 

bunu yeni bir değişkene atama işlemleri yapalım. 

int? sayi = null; 

int yenisayi = sayi;   

yenisayi  derlenemez. çünkü int? tipinde int tipine direkt atanamaz hatası verir 

Bunu için ilk önce int tipine dönüştürmemiz gerekir : 

int? sayi = null; 

int yenisayi = (int)sayi; 

şimdi program derlenebilecek ama çalışma anında sayi değişkeni null olduğunda yine hata oluşacak.

Bu hatanın  oluşmaması için null kontrolü yapmak gerekiyor. 

Bunu da aşağıdaki gibi iki farklı yöntem ile yapabiliriz. 

Böylece çalışma zamanında exception hatasını almayız. 


            int? sayi = null; 

 1.)           if (sayi.HasValue) 
            { 
                MessageBox.Show(sayi.Value.ToString()); 
            } 
            else 
            { 
                MessageBox.Show("Tanımsız"); 
            } 

  2.)          if (sayi != null) 
            { 
                MessageBox.Show(sayi.Value.ToString()); 
            } 
            else 
            { 
                MessageBox.Show("Tanımsız"); 
            } 
    

 Yukarıda sadece int için örnekler verdim. Bu en üstteki bahsettiğim türler içinde yapılabilir.

Null atama işlemi diziler içinde yapılabilir. Örnek olarak: 

Yine ? işartini kullanarak dizi tanımlarken de değişkeni null atanabilir yapmış oluyoruz. 

            int?[] sayilar = new int?[7]; 

            string mesaj = ""; 

            sayilar[0] = 123; 
            sayilar[1] = 3432; 

            for (int i = 0; i < sayilar.Length; ++i) 
            { 

                mesaj += (i + (sayilar[ i ] != null ? ". Değer " : ". Null ") + sayilar[ i ] + "\n" ); 

            } 
            MessageBox.Show(mesaj); 

Bu örnekte sayilar[ i ] değişkemi null olsa da bir exception oluşturmaz. Çünkü string tipine çevirdiğinden null değeri direkt null string değeri olarak kabul edilir.


UYGULAMAYI İNDİR

Hiç yorum yok :

Yorum Gönder