17 Aralık 2009 Perşembe

C# 4.0 - Optional Parameters

Merhabalar;
Size C# 4.0'la gelen opsiyonel parametreleri anlatmaya çalışacağım.Programımızda metotlarımızı overload etmek kaçınılmaz olabiliyor bildiğiniz gibi.Ama her method overloading işlemi de bir kod kalabalığı getiriyor.Bu durumlarda opsiyonel parametrelerin getirdiği kolaylığı görelim.
İşlem yapacak bir metodumuz olsun;
public static double Islem(int a, int b , int c )
{
return a * b + c;
}
Öyle bir durum oldu ki metodumuza aktaracağımız parametreleri duruma göre kendimiz verip duruma göre default bırakmamız gerekti.Bunu gerçekleştirmek için aynı isimde başka bir metot yazmalıydık .Ancak şimdi C# 4.0 ile gelen Opsiyonel Parametre ile bunu yeni bir metot yazmadan gerçekleştirebiliriz. Opsiyonel parametrelerin yardımını burda alıyoruz.
Örneğin;
public static double Islem(int a, int b , int c = 1 )
{
return a * b + c;
}
Metodumuzu kullanalım;
Static void Main(string[] args)
{
Console.WriteLine(Islem(
Console.ReadLine();
}
Gördüğünüz gibi opsiyonel olarak tanımladığımız parametre köşeli parantez içinde gösteriliyor.Bu metodu kullanmak istersek;

Console.WriteLine("İşlem Sonucu = " + Islem(1, 2));

İşlemimizin sonucu 3 gelecektir.Ancak biz c parametresini kendimiz de verebiliriz.

Console.WriteLine("İşlem Sonucu = " + Islem(1, 2,3));

İşlemimizin sonucu 5 gelecektir.Yeni bir metot yazmadan bir farklı metotlar elde etmiş olduk.Şimdi 2 tane opsiyonel parametre kullanımına bir göz atalım.

public static double Islem(int a, int b = 2 , int c = 1 )

İstediğimiz kadar opsiyonel parametre kullanabiliriz ancak dikkat ettiğiniz gibi opsiyonel parametreler metodumuzun parametreleri arasında hep en sonda olmak zorundadır.

Örnek olarak bir kullanım görelim;

Console.WriteLine("İşlem Sonucu = " + Islem(1,c : 2));

Gördüğünüz gibi opsiyonel parametreleri sıralı olarak vermek zorunda değiliz.Burada b parametresi bizim atadığımız default değeri alırken c parametresini 2 olarak atamış olduk

Opsiyonel parametreleri kısaca anlatmaya çalıştım.Bir çok kolaylık sağladığını ve sağlayacağına emin olabilirsiniz.Sizi kod kalabalığından kurtaracaktır.

Herkese kolay gelsin :)