Junior
Какво е претоварване на методи в C#?
sobes.tech AI
Отговор от AI
Претоварването на методи (Method Overloading) в C# позволява да се дефинират няколко метода в един и същи клас с едно и също име, но с различни сигнатури.
Сигнатурата на метода включва:
- Името на метода.
- Броя и типовете на параметрите в списъка с параметри.
Не се включва в сигнатурата:
- Типът на връщаната стойност.
- Модификаторите на параметрите (например,
ref,out).
Пример:
// Клас с претоварени методи
public class Calculator
{
// Претоварване 1: Събиране на две цели числа
public int Add(int a, int b)
{
return a + b;
}
// Претоварване 2: Събиране на две числа с плаваща запетая (други типове параметри)
public double Add(double a, double b)
{
return a + b;
}
// Претоварване 3: Събиране на три цели числа (друг брой параметри)
public int Add(int a, int b, int c)
{
return a + b + c;
}
// Това НЕ е претоварване: различава се само по типа на връщаната стойност
/*
public double Add(int a, int b)
{
return (double)(a + b);
}
*/
}
Компилаторът определя кой метод да бъде извикан по време на компилация, базирайки се на типовете и броя на аргументите, предавани при извикването. Това е известно като статично свързване (Static Binding) или ранно свързване (Early Binding).
Предимства на претоварването на методи:
- Подобрява четливостта и удобството при използване на кода.
- Представя подобни операции под едно име, но за различни типове данни или с различни набори от входни параметри.