Overload (C#)

By | January 16, 2013

Overload: en basit tabiri ile açıklamak gerekirse, bir metodun aynı isimle tekrar yazılması, aldığı parametrelerin değişmesi durumudur. Bir metodun aldığı değerleri değil de sadece dönüş tipinin farklı olacağı şekilde çoğullamak istiyorsak aldığı değerleri de değiştirmek zorundayız. Örneğin elektrik fatura tutarını hesaplayan bir metodumuz olduğunu ele alalım.

decimal FaturaHesapla(decimal Tutar, decimal KdvOrani) {
   return Tutar * KdvOrani;
}

Fatura tutarını hesaplarken kayıp kaçak bedeli adı altında, tahsil edemediğimiz bedelleri de üyelere ödeteceğimiz bir alan daha eklemek zorunda kaldığımızı düşünelim.

decimal FaturaHesapla(decimal Tutar, decimal KdvOrani, decimal KacakBedeli) {
   return (Tutar * KdvOrani) + KacakBedeli;
}

Bu durumda FaturaHesapla adını kullanmak için yazdığımızda visual studio’da intellisense otomatik olarak bu metoda ait overload’ları alt alta listeleyecektir.
KacakBedeli yansıtılacak faturaları hesaplarken bir değer daha alan ikinci yazdığımız metod çalışacaktır.

Metoda gelen değerleri değiştirerek overload yazabiliyoruz, peki ya dönen değerleri değiştirmek istersek? örnekte “decimal” tipinde veri dönmektedir, bunu değiştirebilmek için metoda gelen değerlerde de değişiklik yapmamız gerekecektir. C#, aynı sayıda ve tipte veri girişi yapılan metodlardan, aynı tipte veri çıkışına izin vermemektedir.

string FaturaHesapla(decimal Tutar, decimal KdvOrani, string KacakBedeli)
{
   return string.Format("Fatura Tutarınız : {0}, Kaçak Bedeli : {1}", Tutar*KdvOrani, KacakBedeli);
}

Leave a Reply

Your email address will not be published. Required fields are marked *