CodeBlanks Logo Icon CodeBlanks

Metot overloading

C# kursu · Başlangıç · Ders 74/116

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

  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
    Cevabı göster

    24 — Doğru. Üç parametreli overload çağrılır; 2*3*4 = 24.

  2. İki parametreli Multiply çağrısı

    int result = ____;
    Console.WriteLine(result);
    Cevabı göster
    int result = Multiply(2, 3);
    Console.WriteLine(result);
  3. 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

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