3-Mavzu: Operatorlarni qayta yuklash. Reja Operatorni qayta yuklanish usuli



Yüklə 28,71 Kb.
səhifə2/3
tarix05.06.2023
ölçüsü28,71 Kb.
#125341
1   2   3
3-Mavzu Operatorlarni qayta yuklash

2. Qayta yuklanish usuli
Usullar bilan bir qatorda biz operatorlarni ham qayta yuklay olamiz. Masalan, bizda quyidagi Counter sinfi bor deylik:
Ba'zida bir xil usulni yaratish kerak bo'ladi, lekin boshqa parametrlar to'plami bilan. Va mavjud parametrlarga qarab, usulning ma'lum bir versiyasini qo'llang. Bu xususiyat, shuningdek, usulni qayta yuklash (method overloading) deb ham ataladi.
Va C #da biz bir xil nomdagi, lekin har xil imzo bilan bir nechta usullarni yaratishimiz mumkin. Imzo nima? Imzo quyidagi jihatlardan iborat:

  • Usul nomi

  • Parametrlar soni

  • Parametr turlari

  • Parametrlar tartibi

  • Parametrlarni modifikator(o'zgartiruvchi)lar

Ammo parametrlarning nomlari imzoga kiritilmagan. Masalan, quyidagi usulni oling:
public int Sum(int x, int y)
{
return x + y;
}

Bu usul uchun imzo shunday bo'ladi: Sum(int,int)


Va usulni qayta yuklash - bu usullar har xil imzolarga ega, bunda faqat usul nomi bir xil bo'ladi. Ya'ni, usullar farq qilishi kerak:

  • Parametrlar soni

  • Parametr turi

  • Parametrlar tartibi

  • Parametrlarni o'zgartiruvchilar

Masalan, bizda quyidagi sinf bor deylik:
class Calculator
{
public void Add(int a, int b)
{
int result = a + b;
Console.WriteLine($"Result is {result}");
}
public void Add(int a, int b, int c)
{
int result = a + b + c;
Console.WriteLine($"Result is {result}");
}
public int Add(int a, int b, int c, int d)
{
int result = a + b + c + d;
Console.WriteLine($"Result is {result}");
return result;
}
public void Add(double a, double b)
{
double result = a + b;
Console.WriteLine($"Result is {result}");
}
}

Add usulining to'rt xil versiyasi mavjud, ya'ni bu usulning to'rtta qayta yuklanishi aniqlangan. Usulning dastlabki uchta versiyasi parametrlar sonida farq qiladi. To'rtinchi versiya parametrlar soni bo'yicha birinchisiga to'g'ri keladi, lekin ularning turidan farq qiladi. Bunday holda, kamida bitta parametr turiga qarab farq qilishi etarli. Shuning uchun, bu ham Add usulining qayta yuklanishi.


Ya'ni, biz bu usullarning imzolarini quyidagicha ifodalashimiz mumkin:
Add(int, int)
Add(int, int, int)
Add(int, int, int, int)
Add(double, double)

Qayta yuklangan versiyalarni aniqlagandan so'ng, ularni dasturda ishlatishimiz mumkin:


class Program
{
static void Main(string[] args)
{
Calculator calc = new Calculator();
calc.Add(1, 2); // 3
calc.Add(1, 2, 3); // 6
calc.Add(1, 2, 3, 4); // 10
calc.Add(1.4, 2.5); // 3.9
Console.ReadKey();
}
}

Konsol chiqishi:



Yüklə 28,71 Kb.

Dostları ilə paylaş:
1   2   3




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin