Sobes.tech
Junior

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:

  1. Deklarace delegáta: Definujeme podpis metody, na kterou může ukazovat delegát.

    public delegate int MyDelegate(int x, int y);
    
  2. 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;
        }
    }
    
  3. 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.