Uveďte příklad použití delegátů v C#.
sobes.tech AI
Odpověď od AI
Delegáti jsou typově bezpečné ukazatele na metody. Umožňují předávat metody jako argumenty, přiřazovat je proměnným a volat je přes tyto proměnné. Delegáti se široce používají pro vytváření událostí, zpětných volání a asynchronní programování.
Příklad použití delegáta:
-
Deklarace delegáta: Definujeme podpis metody, na kterou může ukazovat delegát.
public delegate int MyDelegate(int x, int y); -
Definice metod: Vytváříme metody s podpisem odpovídajícím delegátu.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Použití delegáta: Vytvoříme instanci delegáta a přiřadíme mu metodu. Poté voláme metodu přes delegáta.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Vytvoření instance delegáta a přiřazení metody Add MyDelegate del = new MyDelegate(calc.Add); // Volání metody Add přes delegáta int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Výsledek sčítání: {result1}"); // Přiřazení delegáta k metodě Subtract del = calc.Subtract; // Volání metody Subtract přes delegáta int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Výsledek odčítání: {result2}"); } }
V tomto příkladu může MyDelegate ukazovat na jakoukoli metodu, která přijímá dva celočíselné argumenty (int x, int y) a vrací celé číslo (int). Vytváříme dvě instance delegáta (del), přiřazujeme jim metody Add a Subtract, a poté tyto delegáty používáme k volání těchto metod.