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.
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.
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.
{
return string.Format("Fatura Tutarınız : {0}, Kaçak Bedeli : {1}", Tutar*KdvOrani, KacakBedeli);
}