Sobes.tech
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).

Предимства на претоварването на методи:

  • Подобрява четливостта и удобството при използване на кода.
  • Представя подобни операции под едно име, но за различни типове данни или с различни набори от входни параметри.