Sobes.tech
Junior

Kas yra metodų perkrova C#-je?

sobes.tech AI

Atsakymas iš AI

Method Overloading (metodų perkrovimas) C# leidžia apibrėžti kelis metodus toje pačioje klasėje su ta pačia vardu, bet skirtingais parašais.

Metodo parašas apima:

  • Metodo pavadinimą.
  • Parametrų skaičių ir tipus parametruose.

Ne įtraukiama į parašą:

  • Grąžinąją reikšmę.
  • Parametrų modifikatorius (pvz., ref, out).

Pavyzdys:

// Klasė su perkraunamais metodais
public class Calculator
{
    // Perkraunamas 1: dviejų sveikųjų skaičių sudėtis
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Perkraunamas 2: dviejų slankiojo kablelio skaičių sudėtis (kiti parametrų tipai)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Perkraunamas 3: trijų sveikųjų skaičių sudėtis (kitas parametrų skaičius)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Tai NE yra perkrovimas: skiriasi tik grąžinamosios reikšmės tipu
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Kompiliatorius nustato, kurį metodą iškviesti, remiantis argumentų tipu ir skaičiumi, perduotu iškvietimo metu. Tai žinoma kaip statinis ryšys (Static Binding) arba ankstyvas ryšys (Early Binding).

Metodų perkrovimo privalumai:

  • Pagerina kodo skaitomumą ir naudojimo patogumą.
  • Pateikia panašias operacijas po vienu pavadinimu, bet skirtingų duomenų tipų arba su skirtingais įvesties parametrų rinkiniais.