Metot overloading
- C# kursu
- Başlangıç
- Ders 74/116
- 5 dk
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.
Başlangıç kodu
using System;
class Program
{
// İki ve üç parametreli Add overload'larını tanımla
static void Main()
{
// Üç sayıyı topla ve yazdır
}
}Ö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));
}
}Beklenen çıktı
6
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 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 Doğru cevap
Açıklama: Üç parametreli overload çağrılır; 2*3*4 = 24.
2 İki parametreli Multiply çağrısı
int result = ____;
Console.WriteLine(result);
int result = Multiply(2, 3);
Console.WriteLine(result);
Açıklama: İki parametreli overload çağrılır; sonuç 6 olur.
3 Overload imzalarını eşle
| Kavram | Anlamı |
|---|---|
Add(int, int) |
Tamsayı toplar |
Add(double, double) |
Ondalık toplar |
Multiply(int, int, int) |
Üçlü çarpar |
Multiply(int, int) |
İkilili çarpar |