Sobes.tech
Junior

Šta je preopterećenje metoda u C#?

sobes.tech АИ

Одговор од АИ

Preopterećenje metoda (Method Overloading) u C# omogućava definisanje više metoda u istoj klasi sa istim imenom, ali sa različitim potpisima.

Potpis metode uključuje:

  • Ime metode.
  • Broj i tipove parametara u listi parametara.

Ne uključuje se u potpis:

  • Tip povratne vrednosti.
  • Modifikatore parametara (npr. ref, out).

Primer:

// Klasa sa preopterećenim metodama
public class Calculator
{
    // Preopterećenje 1: Sabiranje dva cela broja
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Preopterećenje 2: Sabiranje dva decimalna broja (drugi tipovi parametara)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Preopterećenje 3: Sabiranje tri cela broja (drugi broj parametara)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Ovo NIJE preopterećenje: razlikuje se samo po tipu povratne vrednosti
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Kompajler određuje koji metod da pozove tokom kompajliranja, na osnovu tipova i broja argumenata koji se prosleđuju pri pozivu. Ovo je poznato kao statičko povezivanje (Static Binding) ili rano povezivanje (Early Binding).

Prednosti preopterećenja metoda:

  • Poboljšava čitljivost i upotrebljivost koda.
  • Predstavlja slične operacije pod jednim imenom, ali za različite tipove podataka ili sa različitim skupovima ulaznih parametara.