Sobes.tech
Junior

C# да ыкмаларды ашыкча жүктөө эмне?

sobes.tech AI

AIден жооп

C# тилиндеги ыкчам жүктөө (Method Overloading) бир класс ичинде бир эле аталыштагы, бирок ар башка имзалар менен бир нече методду аныктоого мүмкүндүк берет.

Методтун имзасы төмөнкүлөрдү камтыйт:

  • Методтун аты.
  • Параметрлердин саны жана түрлөрү параметрлердин тизмесинде.

Имзага кирбейт:

  • Кайтаруучу маанинин түрү.
  • Параметрлердин өзгөрмөлөрү (мисалы, 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) деп аталат.

Методтун жүктөлүшүнүн артыкчылыктары:

  • Коддун окумдуулугун жана колдонушун жакшыртат.
  • Бир эле аталыштын астында окшош операцияларды көрсөтөт, бирок ар башка маалымат түрлөрү үчүн же ар башка кирүү параметрлеринин топтомдору менен.