Sobes.tech
Junior

Dajte primer korišćenja delegata u C#.

sobes.tech АИ

Одговор од АИ

Delegati su tipobezbedni pokazivači na metode. Oni omogućavaju prosleđivanje metoda kao argumenata, dodeljivanje promenljivima i pozivanje putem tih promenljivih. Delegati se široko koriste za kreiranje događaja, povratnih poziva i asinhrono programiranje.

Primer korišćenja delegata:

  1. Deklaracija delegata: Definišemo potpis metode na koju može ukazivati delegat.

    public delegate int MyDelegate(int x, int y);
    
  2. Definisanje metoda: Kreiramo metode sa potpisom koji odgovara delegatu.

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. Korišćenje delegata: Kreiramo instancu delegata i dodeljujemo joj metodu. Zatim pozivamo metodu putem delegata.

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // Kreiranje instance delegata i dodeljivanje metode Add
            MyDelegate del = new MyDelegate(calc.Add);
    
            // Pozivanje metode Add putem delegata
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"Rezultat sabiranja: {result1}");
    
            // Prepisivanje delegata na metodu Subtract
            del = calc.Subtract;
    
            // Pozivanje metode Subtract putem delegata
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"Rezultat oduzimanja: {result2}");
        }
    }
    

U ovom primeru, MyDelegate može ukazivati na bilo koju metodu koja prihvata dva argumenta tipa int (int x, int y) i vraća int. Kreiramo dve instance delegata (del), dodeljujemo im metode Add i Subtract, i zatim koristimo delegat za pozivanje tih metoda.