Serdar YILMAZ
Bizimkisi Bir “Bug” Hikayesi...
Serdivan/Sakarya

Etiket 'C# Method Overloading'

C# – Metotların Aşırı Yüklenmesi

dotnetHer metodun kendine özgü bir imzası bulunmaktadır. İmza;

  1. Metot Adı
  2. Parametre Sayısı
  3. Parametrelerin Tipi

bilgilerini içermektedir. Aynı imzaya sahip birden fazla metot tanımlanamaz. Üç bilgiden en az birinin farklı olması şartıyla metot tanımlanabilir.

Bu bilgilerden yola çıkarak parametre sayısı ve parametrelerin tipinden en az birisinin farklı olması şartıyla aynı ada sahip metotlar tanımlayabileceğimiz sonucunu çıkarabiliriz. Aynı isme sahip farklı metotların tanımlanmasına Metotların Aşırı Yüklenmesi denir.

İmza; metodun geri dönüş değeriyle alakalı bilgi içermez. Sadece ve sadece yukarıdaki 3 bilgiyi içermektedir.

Metot adı ve parametre sayısı aynı olmasına rağmen parametre tipleri farklıdır. Farklı imzalara sahip olacaklarından yukarıdaki gibi bir tanımlama yapılabilir.
Metot adı ve parametrelerin tipi aynı olmasına rağmen parametre sayıları farklıdır. Farklı imzalara sahip olacaklarından yukarıdaki gibi bir tanımlama yapılabilir.
İmza; metodun geri dönüş değeriyle alakalı bilgi içermez. Yukarıdaki metotlar aynı imzaya sahip olduklarından (Metot adı, parametre sayısı ve türü aynı) böyle bir tanımlama yapılamaz.

Hangi Metodun Çağrılacağına Nasıl Karar Verilir ?

Derleyici aynı isme sahip metotlardan hangisini çağıracağına karar vermek için metot bildirimi ile metot çağrımı arasındaki uyuma bakar. Metot çağrımı ile aynı parametre sayısına ve türüne sahip bir metot bildirimi varsa ilgili metot direk çağrılacaktır. Parametre sayısı aynı olmasına rağmen parametre türleri farklıysa veri kaybı olmayacak şekilde uygun bir metot çağrılır. Örneğin double tipinde parametre alan bir metoda int tipinde parametre gönderilebilir.

Uygulama

Serdar YILMAZ