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) медонанд.
Манфиатҳои зиёдатии усулҳо:
- Беҳтар кардани хонданпазирӣ ва истифодаи коди.
- Намоиши амалҳои монанд дар зери як ном, аммо барои навъҳои гуногуни додаҳо ё бо маҷмӯи гуногуни параметрҳои воридотӣ.