22.07.2010 11:13:10

İsimlendirilmiş (Named) ve Opsiyonel (Optional) Parametreler


C# 4.0 ile gelen yeniliklerden birisi de named ve optional parametrelerdir. Named parametreler sayesinde; metotlara değerleri gönderirken,parametre sıralarını gözetmeksizin adlarını belirterek parametre göndermemizi sağlar. Optional parametreler ile; metotları tanımlarken istediğimiz parametreye varsayılan değeri vererek, bu parametre değeri gönderilmediği taktirde alacağı değeri belirleriz.

 

 

Opsiyonel (Optional) Parametreler

 

Bu parametrelerin ne işe yaradığını yukarda anlatmıştık o yüzden örnek üzerinden gideceğiz :

class Program

    {

        static void Main(string[] args)

        {

            Opsiyonel("Yılmaz");//Çıktısı : a=5 ad=Burak soyad=Yılmaz

            Opsiyonel("Yılmaz","Kemal Burak");//Çıktısı : a=5 ad=Kemal Burak soyad=Yılmaz

            Opsiyonel("Yılmaz", "Kemal Burak", 58);//Çıktısı : a=58 ad=Kemal Burak soyad=Yılmaz

        }

        public static void Opsiyonel(string soyad,string ad = "Burak",int a = 5)

        {

            Console.WriteLine("a="+a.ToString()+" ad="+ad+" soyad="+soyad);

        }

    }

 

 

Örnekten de anlaşılacağı üzere opsiyonel parametrelere değer gönderdiğimde ; benim gönderdiğim değerler ekranda gözüktü. Fakat değer göndermediğimde ; önceden atadığım değerler ekranda gözüktü.

 

 

 

 

İsimlendirilmiş (Named) Parametreler

 

 

 

 

Bu tip parametrelerde; parametre sırası, hangi parametreye değer göndereceğimiz önemli, değildir. İstediğimiz parametreye istediğimiz değeri istediğimiz sırada gönderebiliriz:)…Örnek üzerinden gidelim :

 

 

 

 

class Program

 

    {

        static void Main(string[] args)

        {

            Opsiyonel(a:58,soyad:"Yılmaz");//Çıktısı : a=58 ad=Burak soyad=Yılmaz

            Opsiyonel("Yılmaz", a: 58);//Çıktısı : a=58 ad=Burak soyad=Yılmaz

            Opsiyonel(a: 58, ad: "Burak", soyad: "YILMAZ");//Çıktısı : a=58 ad=Burak soyad=YILMAZ

        }

        public static void Opsiyonel(string soyad,string ad = "Burak",int a = 5)

        {

            Console.WriteLine("a="+a.ToString()+" ad="+ad+" soyad="+soyad);

        }

    }

 

 

Örnekten konunun daha iyi anlaşıldığını düşünüyorum. Bu özellikler sayesinde metotlar daha kısa çağırılabilir ve bir metodun farklı overloadlarının da önüne geçilebilir.