Memik Yanık - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS RSS | İletişim

C# 4.0 İle Gelen Yenilikler : İsteğe Bağlı Parametreler


C#’ın ilk üç sürümünde Visual Basic’in aksine isteğe bağlı parametre desteği yoktu. C# 4.0 ile bu destek verilmeye başlandı. C# 4.0’da isteğe bağlı parametrelerin nasıl kullanıldığını aşağıda görebilirsiniz. Kullanılması isteğe bağlı olan parametreye genel alışkanlıkla söz konusu tipin varsayılan değeri aktarılmaktadır. 

private
static int Topla(int sayi1, int sayi2=0, int sayi3=0
 
    return sayi1 + sayi1 + sayi3; 
 

Bu şartlarda bu metot bir veya 2 parametre ile çağrılırsa eksik parametrenin 0 olduğu varsayılır. Bu metodun 1. parametresi isteğe bağlı olmadığı için bu metot parametresiz çağrılamaz. Örneğin bu metot aşağıdaki gibi işletildiğinde 3. parametrenin 0 olduğu varsayılır. 

private
void button1_Click(object sender, EventArgs e) 
 
   int number1 = 100
   int number2 = 200
   int sonuc = Topla(number1, number2); 
   MessageBox.Show(sonuc.ToString());    
 

Bu örnekte Number2 adını verdiğim değişkenin 2. veya 3. parametrenin yerini tutmasının önemi yoktur. Başka bir deyişle eksik parametrenin hangisi olduğunun önemi yoktur. Ancak bazen metot çağrılırken kullanılmayan veya kullanılan parametrelerin hangileri olduğu önemli olmaktadır. Konunun açığa çıkması için aşağıdaki gibi 3 parametreli bir metot hazırladım. 

private
static string birlestir(string ad, string telefon, string adres) 
 
    return "Ad :" + ad + "Telefon :" + telefon + "Adres:" +adres; 
 

Bu metot aşağıdaki gibi 3 parametre ile çağrılırsa sorunsuz çalışır. 

private
void button1_Click(object sender, EventArgs e) 
 
    string ad1 = textBox1.Text; 
    string tel1 = textBox2.Text; 
    string adres1 = textBox3.Text; 
    string sonuc = birlestir(ad1, tel1, adres1); 
    MessageBox.Show(sonuc.ToString());    


Şimdi birlestir() adını verdiğim bu metodun 2. ve 3. parametrelerinin isteğe bağlı olmasını sağlayacağım. 

private
static string birlestir(string ad, string telefon="", string adres=""
 
    return "Ad :" + ad + "Telefon :" + telefon + "Adres:" +adres; 
 

Bu şartlarda bu metot 2 parametre ile işletilirse sorunlar yaşanabilir. Örneğin formdaki 1. ve 3. TextBox’a bilgi girilip bu metot aşağıdaki gibi işletilirse adres bilgisinin başına “Telefon” sabit bilgisi yazılır. 

private
void button1_Click(object sender, EventArgs e) 
 
    string ad1 = textBox1.Text; 
    string tel1 = textBox2.Text; 
    string adres1 = textBox3.Text; 
    string sonuc = birlestir(ad1, adres1); 
    MessageBox.Show(sonuc.ToString());    
 

Bu sorunun çözümü parametreleri isimlendirmektir. Bu işlemin nasıl yapıldığını aşağıda görebilirsiniz. Bu ayarlamadan sonra birlestir() metodu işletilirken kendisine 2. parametre olarak verilen bilgi “adres” adlı 3. parametre ile eşleştirilir. 

 
private void button1_Click(object sender, EventArgs e) 
  
     string ad1 = textBox1.Text; 
     string tel1 = textBox2.Text; 
     string adres1 = textBox3.Text; 
     string sonuc = birlestir(ad1, adres:adres1); 
     MessageBox.Show(sonuc.ToString());    
  }

C#.NET 13.11.2009 00:22:29

1 YORUM


YorumlarYorum Yaz
Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS | İletişim
Memik Yanık 2004-2009 © Tüm Hakları Saklıdır.
Hazırlayan www.semgoksu.com