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:
-
Deklaracija delegata: Definišemo potpis metode na koju može ukazivati delegat.
public delegate int MyDelegate(int x, int y); -
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; } } -
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.