Sobes.tech
Junior

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:

  1. Deklarácia delegáta: Definujeme podpis metódy, na ktorú môže ukazovať delegát.

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