Junior
Ce este suprasarcina metodelor în C#?
sobes.tech AI
Răspuns de la AI
Suprapunerea metodelor (Method Overloading) în C# permite definirea mai multor metode în aceeași clasă cu același nume, dar cu semnături diferite.
Semnătura metodei include:
- Numele metodei.
- Numărul și tipurile de parametri din lista de parametri.
Nu include în semnătură:
- Tipul valorii returnate.
- Modificatorii de parametri (de exemplu,
ref,out).
Exemplu:
// Clasă cu metode suprasarcinate
public class Calculator
{
// Suprasarcină 1: Adunarea a două numere întregi
public int Add(int a, int b)
{
return a + b;
}
// Suprasarcină 2: Adunarea a două numere cu virgulă mobilă (alte tipuri de parametri)
public double Add(double a, double b)
{
return a + b;
}
// Suprasarcină 3: Adunarea a trei numere întregi (alt număr de parametri)
public int Add(int a, int b, int c)
{
return a + b + c;
}
// Aceasta NU este suprasarcină: diferă doar prin tipul valorii returnate
/*
public double Add(int a, int b)
{
return (double)(a + b);
}
*/
}
Compiler-ul determină ce metodă să fie apelată în timpul compilării, pe baza tipurilor și numărului de argumente transmise la apel. Acest lucru este cunoscut sub numele de legare statică (Static Binding) sau legare timpurie (Early Binding).
Avantajele suprasarcinii metodelor:
- Îmbunătățește lizibilitatea și ușurința în utilizarea codului.
- Prezintă operații similare sub același nume, dar pentru diferite tipuri de date sau cu seturi diferite de parametri de intrare.