Visual Studio 2010 ve .NET Framework 4.0 Beta 2 ile uğraşmaya daha bir ciddi şekilde başladım ve ilk debelenmelerim sonucu çok hoş şeyler ile karşılaştım.Öncelikle C# 4.0 ile gelen özelliklerden bahsetmeye çalışacağım, sonra daha derinlere dalarım ve paylaşabilirim umarım.Neyse…
C# 4.0 ile beraber yeni bir kaç kodlama özelliği yazılım geliştirme sürecine dahil olacak. Bunlardan ara sıra bahsetmeye çalışacağım ama ilk olarak “Optional Parameters” kavramından bahsetmek istiyorum.
Yazılım geliştirirken bir methodu farklı parametreler ile kullanmak gerekebiliyor. Bunun içinde methodu overload edip,farklı parametreler ile aynı methodu ihtiyaca göre N kere yazıyoruz. Eminim herkesin çok sık kullandığı ve bildiği bir şeydir bu.Şöyle ki;
14 //Varsayılan hız 10
15 public static string Drive()
16 {
17 return Drive(10);
18 }
19
20 //Hız parametrik, varsayılan vites 1
21 public static string Drive(int velocity)
22 {
23 return Drive(velocity, 1);
24 }
25 //Hız ve vites parametrik,max. hız varsayılan değer 100
26 public static string Drive(int velocity, int speed)
27 {
28 return Drive(velocity, speed,100);
29 }
30
31 //hız,vites,max. hız parametrik
32 public static string Drive(int velocity, int speed, int maxvelocity)
33 {
34 return “Drive safe. “+
35 ” Velocity:”+velocity.ToString()+
36 ” Speed:”+speed.ToString()+
37 ” Maxvelocity:”+maxvelocity.ToString();
38 }
İhtiyaca göre N tane method yazabiliriz ama nereye kadar…C# 4.0’a kadarmış 😀
C# 4.0 ile beraber gelen Optional Parameters kavramı ile bu işi tek method şeklinde yapabiliriyoruz ve N tane method yazmaktan kurtuluyoruz.Methodun parametrelerine default(varsayılan) değerler ile methodlarımızı, N tane method yazmadan genişletebiliyoruz.Şöyle ki;
40 public static string Drive(int velocity=10,int speed=1,int maxvelocity=100)
41 {
42 return “Drive safe. “ +
43 ” Velocity:” + velocity.ToString() +
44 ” Speed:” + speed.ToString() +
45 ” Maxvelocity:” + maxvelocity.ToString();
46 }
Bu şekilde Drive() methodunun velocity parametresinin varsayılan değeri 10,speed parametresinin varsayılan değeri 1, maxvelocity parametresinin varsayılan değeri 100 oluyor.
Ve Drive() methodunu aşağıdaki gibi çeşitli parametreler ile kullanabiliyoruz;
Yukarıdaki kodun çıktısı aşağıdaki gibi olacaktır.
Şekillerinde çağırmamız mümkün.Ne güzel değil mi…