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.