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.