C# 6.0 İle nameof Operator Kullanımı


1 Kasım 2015 Hikmet Okumuş C#

nameof operatörü parametre geçilen değişken adını string olarak geri döndürmek için kullanılmaktadır. nameof operatörüne neden ihtiyaç duyulduğunu aşağıdaki örnek üzerinden inceleyelim.
		    private void button1_Click(object sender, EventArgs e)
		    {
		        Ekle(null);
		    }
		
		    public void Ekle(string isim)
		    {
		        if (isim == null)
		        {
		            throw new ArgumentNullException("isim");
		        }
		    }
		
Yukarıdaki kodu çalıştırdığımızda aşağıdaki gibi bir "ArgumentNullException" hatası alırız.
www.hikmetokumus.com
Ekran üzerindeki mesajı incelediğimizde null giden parametre adı mesajın sonunda belirtilmiştir. Şimdi kod üzerinde ufak bir değişiklik yapalım.
		    private void button1_Click(object sender, EventArgs e)
		    {
		        Ekle(null);
		    }
		
		    public void Ekle(string isim)
		    {
		        if (isim == null)
		        {
		            throw new ArgumentNullException("isim2");
		        }
		    }
		
Kodu tekrar çalıştırdığımızda yeniden "ArgumentNullException" hatası alınacaktır.
www.hikmetokumus.com
Mesaja dikkat ettiğimizde null gelen parametre adının "isim2" olduğunu söylemektedir. Fakat bizim metodumuza parametre olarak geçtiğimiz değişken adı "isim" dir. Burada yazılım geliştirme aşamasında yapılan bir karakter hatası, sonrasında hata çözümlerinide olumsuz etkileyebilmektedir. String bir ifade girdiğimiz için dikkat edilmemesi durumunda bu ve benzeri hatalar almamız kaçınılmazdır. nameof oparatörü işte bu gibi durumlarda çözüm olarak kullanılmaktadır. nameof operatörü parametre olarak verilen bir objenin ismini geriye string olarak döndürmektedir.
		    private void button1_Click(object sender, EventArgs e)
		    {
		        Ekle(null);
		    }
		
		    public void Ekle(string isim)
		    {
		        if (isim == null)
		        {
		            throw new ArgumentNullException(nameof(isim));                
		        }
		    }
		
Yukaridaki "nameof(isim)" tanımlaması bize string olarak "isim" değerini döndürecektir. Az önce yukarıdaki gibi string bir karakter hatasını burada yapmamız mümkün değildir. Böyle bir durumda derleyici aşağıdaki gibi hata verecektir.
www.hikmetokumus.com
nameof operatörü kullanımı ile ilgili aşağıda bir kaç örnek bulunmaktadır.
		    nameof(Program.ToString); 	//ToString
		    nameof(OpenFileDialog); 	//OpenFileDialog
		    nameof(this.Tag); 			//Tag 
		    nameof(isim);				//isim
		

Başarılar dilerim.



Yorum Ekle