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:
Dostları ilə paylaş: |