C# İle Is ve As Operatörlerinin Kullanımı


21 Nisan 2013 Hikmet Okumuş C#

Program yazarken yapılan bir cast işleminde tip ile ilgili bir dikkat gözden kaçırıldığında tip uyuşmazlığı hatası alınmaktadır. Bu tarz bir hata çalışma anında programın kırılmasına yol açmaktadır. Is ve as operatörleri bu noktada bizlere tipler üzerinde kontrol yapma olanağı sağlamaktadır. Öncelikle hatalı bir çevirme işlemi yapalım.
www.hikmetokumus.com
Yukarıda görüldüğü gibi bu şekilde yapılan hatalı bir cast işlemi sonrasında InvalidCastException hatası alınacaktır. Bu hatadan yola çıkarak öncelikle Is operatörünü inceleyelim.
Is operatörü cast işlemi ile dönüşüm yapılacak değişken tiplerini kontrol eder. Kontrol sonrasında geriye bool bir değer döndürür. Yukarıdaki örneği Is operatörü ile tekrar uygulayalım.
		        private void button1_Click(object sender, EventArgs e)
		        {
		            Object Deger = true;
		            Kisiler Kisi = null;
		            
		            if(Deger is Kisiler)
		            {
		                Kisi = (Kisiler)Deger;
		            }
		        }
		
Burada Deger değişkeninin tipi is operatörü ile kontrol edilmektedir. Eğer sonuc true olursa cast işlemi yapılacaktır. Bu sadeye Exception hatasının önüne geçilmiş olunacaktır.
www.hikmetokumus.com
As operatörü ise is operatörü ile benzer bir şekilde çalışmaktadır. Arasındaki fark, is operatörü kontrol ile bool bir değer döndürürken as operatörü ilgili tipin referansını döndürmektedir. Eğer yapılan cast işlemi hatalı ise null değerini döndürmektedir.
		        private void button1_Click(object sender, EventArgs e)
		        {
		            Kisiler Kisi = new Kisiler();
		            Kisi.Ad = "Ali";
		            Kisi.Soyad = "Can";
		
		            Object Obj = Kisi as Kisiler;
		
		            if (Obj != null)
		            {
		                MessageBox.Show("Çeviri başarılı.");
		            }
		            else
		            {
		                MessageBox.Show("Çeviri başarısız.");
		            }
		        }
		
www.hikmetokumus.com
Cast işleminin hatalı olması durumunda ise null değerini döndüreceğini söylemiştik. Aşağıda hatalı bir cast işleminin çıktısı yer almaktadır.
www.hikmetokumus.com
Is ve as operatörlerini kullanarak programda oluşabilecek bu ve benzeri hataların önüne geçebilirsiniz.

Başarılar dilerim.



Yorum Ekle