CodeBlanks Logo Icon CodeBlanks

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

Program.cs
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

Program.cs
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?

Program.cs
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ı

Soru
int result = ____;
Console.WriteLine(result);
Cevap
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

Başlangıç bölümündeki tüm dersler