Google da ara

 

Mayıs 2009
Pts Sal Çar Per Cum Cts Paz
« Nis   Haz »
 123
45678910
11121314151617
18192021222324
25262728293031

Google Reklamları

Dil Seçimi

Bağış yada Ödeme

Csharp 4.0 – İsimli ve Opsiyonel Parametreler (Named and Optional Arguments)

Csharp 4.0 ile gelen yeniliklerden bir taneside isimli ve opsiyonel parametrelerdir. Method overloading ile çözülen bir methodu birden fazla imza ile çağırma olayını biraz daha kolaylaştırmak için getirilmiş güzel bir yeniliktir.

Kısaca özetlemek gerekirse önceleri Selamla diye bir method yazdığımızda ve bu method sadece string bir adSoyad ile çağrılabilmesi ayrıca opsiyonel olarak yaş , kilo ve cinsiyet parametreleri ile çağrılabilmesi için 4 adet method tanımı yapmamız ve genellikle en fazla parametre alan method içeriğinde işlemleri yapıp diğer methodlardan bu methodu default değerler ile çağırmamız söz konusu idi.

CSharp 4.0 ile gelen Opsiyonel parametre özelliği ile artık tek bir method yazarak  istediğimiz parametreleri opsiyonel olarak bırakıp tanım içerisinde default değerlerini verebiliyoruz.

Bu şu şekilde gerçekleşiyor :

public string Selamla(string adSoyad, int yas = 0, int kilo = 0, bool erkekMi = true){...}

Burdaki tanımda yas,kilo ve erkekMi parametreleri opsiyonel olarak bırakılıyor böylece; sadece adSoyad göndererek bu methodu çağırabiliyoruz. İstersek sırayla adSoyad,yas parametrelerini ve sırası bozulmadan diğerlerinide bu şekilde eskiden kullandığımız gibi kullanabiliriz. Ancak sadece adSoyad ve erkekMi parametrelerini göndererek çağırabilmek için İsimli çağırım kullanmalıyız.

Buda şu şekilde gerçekleşiyor :

Selamla("Eylem", erkekMi : false);
Selamla(adSoyad: "Eylem", erkekMi: false);

Böylece opsiyonel parametreleri istediğimiz sıra ve şekilde kullanabilir hale geliyoruz buda bizim gereksiz yere tonlarca overload method yazdırmayarak zaman kazandırıyor.

İlgili örneğin tüm kodları için :

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(Selamla("Yılmaz"));
            MessageBox.Show(Selamla("Yılmaz", 23));
            MessageBox.Show(Selamla("Yılmaz", 23, 78));
            MessageBox.Show(Selamla("Eylem", 25, 49, false));
            MessageBox.Show(Selamla("Eylem", erkekMi : false));
            MessageBox.Show(Selamla(adSoyad: "Eylem", erkekMi: false));
        }
        public string Selamla(string adSoyad, int yas = 0, int kilo = 0, bool erkekMi = true)
        {
            string sonuc = String.Format("Merhaba {0} {1} ", adSoyad,erkekMi ? "Bey": "Hanım");
            if (yas > 0)
            {
                sonuc += Environment.NewLine + "Yaşınız = " + yas;
            }
            if (kilo > 0)
            {
                sonuc += Environment.NewLine + "Kilonuz = " + kilo;
            }
            return sonuc;
        }

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">