Nesneye Dayalı Programlama -8- Overload


Merhabalar Arkadaşlar,

Bu yazımızda metotların aşırı yüklenmesinden(overload) bahsedeceğiz.

Aynı isme sahip, dışarıdan değer alma sayıları veya tipleri farklı olan metotlardır.

Aşırı yüklenmiş metotlar kullanıldıkları sınıflarda, bu sınıflara ait nesne örnekleri için aynı isme sahip fakat farklı görevleri yerine getirebilen (benzer görevi farklı sayı veya tipte parametre ile yerine getirebilen) fonksiyonellikler kazandırır.

Burada dikkat edilmesi gereken başlıca husus geri dönüş tipinin değişmesi ile aşırı yüklenmiş metot oluşturulmamasıdır.

Gerçek bir örnek ile devam edelim. Uzun formatta verilen bir tarih değeri ile (örneğin, 1.1.1990), sadece yıl verilerek (örneğin, 1990) gerçekleştirilecek yaş hesaplama işlemi birbirinden farklı işleme süreçlerine sahip olmak durumundadır.
İlkinde, halen içinde bulunulan yıldan, verilen değerdeki yıl bulunarak çıkartılır.
İkincisinde ise, içinde bulunulan yıldan, doğrudan verilen değer çıkartılabilir.
Bu iki farklı hesaplama yöntemi nedeniyle, iki farklı metot gerekir.
Bu metotlar aşağıdaki gibi yazılabilir:



Yukarıda kullanılan DateTime sınıfı tarih işlemlerinin oluşturulduğu sınıftır. Burada kullanılan Now.Year özellikleri mevcut tarihin yılını vermektedir.

İki metodun da asıl amacı yaşı hesaplamaktır. Bu durumda, kullanım kolaylığı amacıyla, Overload metotları aşağıdaki gibi kullanabilirsiniz:



YasHesapla ismini kullanarak ve imza gereksinimlerini karşıladıktan sonra, istediğiniz sürüme erişebilirsiniz.
DateTime tipinde bir değer gönderirseniz ilk metot, int tipinde bir değer gönderirseniz ikinci metot çalışacaktır.
Visual Studio’da bir metodun kaç overload’u olduğu, IntelliSense yardımıyla izlenebilir ve overload’lardaki imza farklılıkları buradan gözlemlenebilir.



Kullanımı


Sonuç


İyi çalışmalar dilerim.