Uveďte príklad použitia delegátov v C#.
sobes.tech AI
Odpoveď od AI
Delegáty sú typovo bezpečné ukazovatele na metódy. Umožňujú odovzdávať metódy ako argumenty, priraďovať ich premenným a volať ich cez tieto premenné. Delegáty sa široko používajú na vytváranie udalostí, spätných volaní a asynchrónne programovanie.
Príklad použitia delegáta:
-
Deklarácia delegáta: Definujeme podpis metódy, na ktorú môže ukazovať delegát.
public delegate int MyDelegate(int x, int y); -
Definícia metód: Vytvárame metódy so zodpovedajúcim podpisom delegáta.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Použitie delegáta: Vytvárame inštanciu delegáta a priraďujeme mu metódu. Následne voláme metódu cez delegáta.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Vytvorenie inštancie delegáta a priradenie metódy Add MyDelegate del = new MyDelegate(calc.Add); // Volanie metódy Add cez delegáta int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Výsledok sčítania: {result1}"); // Priradenie delegáta k metóde Subtract del = calc.Subtract; // Volanie metódy Subtract cez delegáta int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Výsledok odčítania: {result2}"); } }
V tomto príklade môže MyDelegate ukazovať na akúkoľvek metódu, ktorá prijíma dva argumenty typu int (int x, int y) a vracia int. Vytvárame dve inštancie delegáta (del), priraďujeme im metódy Add a Subtract, a potom tieto delegáty používame na volanie týchto metód.