Sobes.tech
Junior

Mi az a metódus túlterhelés C#-ban?

sobes.tech MI

Válasz az MI-től

A metódusok túlterhelése (Method Overloading) a C#-ban lehetővé teszi több módszer meghatározását ugyanabban az osztályban ugyanazzal a névvel, de különböző aláírásokkal.

A metódus aláírása tartalmazza:

  • A metódus nevét.
  • A paraméterek számát és típusait a paraméterlistában.

Nem tartozik az aláírásba:

  • A visszatérési típus.
  • A paraméter módosítói (pl. ref, out).

Példa:

// Osztály túlterhelt módszerekkel
public class Calculator
{
    // 1. túlterhelés: két egész szám összeadása
    public int Add(int a, int b)
    {
        return a + b;
    }

    // 2. túlterhelés: két lebegőpontos szám összeadása (más paramétertípusok)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // 3. túlterhelés: három egész szám összeadása (más paraméterek száma)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Ez NEM túlterhelés: csak a visszatérési típusban különbözik
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

A fordító meghatározza, melyik metódust hívja meg a fordítás során, az argumentumok típusai és száma alapján, amelyeket a híváskor adunk meg. Ezt nevezzük statikus kötésnek (Static Binding) vagy korai kötésnek (Early Binding).

A metódus túlterhelés előnyei:

  • Javítja a kód olvashatóságát és használhatóságát.
  • Hasonló műveleteket mutat be egy név alatt, de különböző adattípusokra vagy különböző bemeneti paraméterkészletekre.