Metot overloading
Aynı isimli metotları farklı parametrelerle tanımlamayı öğrenirsin.
Metot overloading
C#'ta aynı isimli birden fazla metot tanımlanabilir; buna overloading denir. Tek koşul, parametrelerin sayısının ya da türünün farklı olmasıdır. Derleyici çağrıdaki argümanlara bakarak en uygun overload'u seçer.
Örnek: static int Add(int a, int b) ve static int Add(int a, int b, int c) iki ayrı overload. Add(2, 3) ilkini, Add(1, 2, 3) ikincisini çağırır.
Overload seçimi
Derleyici çağrıdaki argümanların sayısına ve türlerine bakarak en uygun overload'u seçer. Tam eşleşme varsa onu tercih eder; yoksa tür dönüşümü yapan en yakın adayı arar. Belirsizlik varsa derleme hatası verir.
İmza (signature) metot adı artı parametre türlerinin sıralı listesidir; dönüş türü imzaya dahil değildir. Yalnızca dönüş türü farklı olan iki overload tanımlanamaz.
Uygulama İki ve üç parametreli Add
İki overload tanımla: static int Add(int a, int b) { return a + b; } ve static int Add(int a, int b, int c) { return a + b + c; }. Main içinde Add(1, 2, 3) çağır ve sonucu Console.WriteLine ile yazdır.
Örnek çözümü göster
İki static int Add tanımı yaz, Main içine Console.WriteLine(Add(1, 2, 3)); ekle.
Örnek çözüm:
using System;
class Program
{
// İki ve üç parametreli Add overload'larını tanımla
static int Add(int a, int b) { return a + b; }
static int Add(int a, int b, int c) { return a + b + c; }
static void Main()
{
// Üç sayıyı topla ve yazdır
Console.WriteLine(Add(1, 2, 3));
}
}
Kendini test et
-
Multiply(2, 3, 4) çağrısı ne yazdırır?
static int Multiply(int a, int b) { return a * b; } static int Multiply(int a, int b, int c) { return a * b * c; } Console.WriteLine(Multiply(2, 3, 4));- 6
- 9
- 14
- 24
Cevabı göster
24 — Doğru. Üç parametreli overload çağrılır; 2*3*4 = 24.
-
İki parametreli Multiply çağrısı
int result = ____; Console.WriteLine(result);Cevabı göster
int result = Multiply(2, 3); Console.WriteLine(result); -
Overload imzalarını eşle
- Add(int, int)
- Tamsayı toplar
- Add(double, double)
- Ondalık toplar
- Multiply(int, int, int)
- Üçlü çarpar
- Multiply(int, int)
- İkilili çarpar