Sobes.tech
Junior

Co je to přetížení metod v C#?

sobes.tech AI

Odpověď od AI

Metoda přetížení (Method Overloading) v C# umožňuje definovat více metod ve stejné třídě se stejným názvem, ale s různými podpisy.

Podpis metody zahrnuje:

  • Název metody.
  • Počet a typy parametrů v seznamu parametrů.

Ne je zahrnuto do podpisu:

  • Typ návratové hodnoty.
  • Modifikátory parametrů (například ref, out).

Příklad:

// Třída s přetíženými metodami
public class Calculator
{
    // Přetížení 1: Sčítání dvou celých čísel
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Přetížení 2: Sčítání dvou desetinných čísel (jiné typy parametrů)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Přetížení 3: Sčítání tří celých čísel (jiný počet parametrů)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Toto NENÍ přetížení: liší se pouze typem návratové hodnoty
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Kompilátor určuje, kterou metodu zavolat během kompilace, na základě typů a počtu argumentů předaných při volání. To je známé jako statické vázání (Static Binding) nebo časné vázání (Early Binding).

Výhody přetížení metod:

  • Zlepšuje čitelnost a použitelnost kódu.
  • Představuje podobné operace pod jedním názvem, ale pro různé datové typy nebo s různými sadami vstupních parametrů.