Sobes.tech
Junior

Čo je to preťažovanie metód v C#?

sobes.tech AI

Odpoveď od AI

Preopakovanie metód (Method Overloading) v C# umožňuje definovať viacero metód v rovnakej triede s rovnakým názvom, ale s rôznymi podpismi.

Podpis metódy zahŕňa:

  • Názov metódy.
  • Počet a typy parametrov v zozname parametrov.

Ne je zahrnuté v podpise:

  • Typ návratovej hodnoty.
  • Modifikátory parametrov (napríklad ref, out).

Príklad:

// Trieda s preťaženými metódami
public class Calculator
{
    // Preťaženie 1: Sčítanie dvoch celých čísel
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Preťaženie 2: Sčítanie dvoch desatinných čísel (iné typy parametrov)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Preťaženie 3: Sčítanie troch celých čísel (iný počet parametrov)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Toto NIE je preťaženie: líši sa iba typom návratovej hodnoty
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Kompilátor určuje, ktorú metódu zavolať počas kompilácie, na základe typov a počtu argumentov, ktoré sú odovzdané pri volaní. Toto je známe ako statické viazanie (Static Binding) alebo skoré viazanie (Early Binding).

Výhody preťaženia metód:

  • Zlepšuje čitateľnosť a použiteľnosť kódu.
  • Predstavuje podobné operácie pod jedným názvom, ale pre rôzne dátové typy alebo s rôznymi sadami vstupných parametrov.