Sobes.tech
Junior

Mis on meetodite ülekoormamine C#-s?

sobes.tech AI

Vastus AI-lt

Method Overloading (meetodite ülekoormamine) C#-s võimaldab määratleda sama klassi sees mitu meetodit sama nimega, kuid erinevate signatuuridega.

Meetodi signatuur hõlmab:

  • Meetodi nime.
  • Parameetrite arvu ja tüüpe parameetrite nimekirjas.

Ei kuulu signatuuri:

  • Tagastatava väärtuse tüüp.
  • Parameetrite modifikaatorid (näiteks ref, out).

Näide:

// Klass koos ülekoormatavate meetoditega
public class Calculator
{
    // Ülekoormus 1: Kaks täisarvu liitmine
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Ülekoormus 2: Kaks ujukomaarvu liitmine (teised parameetritüübid)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Ülekoormus 3: Kolme täisarvu liitmine (teine parameetrite arv)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // See EI ole ülekoormus: erineb ainult tagastatava väärtuse tüübist
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Kompilaator määrab, millist meetodit kutsuda, lähtudes argumentide tüübist ja arvust, mis antakse kutsumisel. Seda nimetatakse statiliseks sidumiseks (Static Binding) või varajaseks sidumiseks (Early Binding).

Meetodite ülekoormamise eelised:

  • Parandab koodi loetavust ja kasutusmugavust.
  • Esitab sarnased toimingud ühe nime all, kuid erinevate andmetüüpide või erinevate sisendparameetrite kogumitega.