9 November 2025 Sunday 10:45:12


C# 6.0 İle nameof Operator Kullanımı

C# 6.0 İle nameof Operator Kullanımı

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  

 

img

ibrahim ÖZKAN