Oferiți un exemplu de utilizare a delegaților în C#.
sobes.tech AI
Răspuns de la AI
Delegatii sunt pointeri siguri de tip către metode. Ele permit transmiterea metodelor ca argumente, atribuirea lor variabilelor și apelarea lor prin aceste variabile. Delegatii sunt folosiți pe scară largă pentru crearea de evenimente, callback-uri și programare asincronă.
Exemplu de utilizare a unui delegat:
-
Declarația delegatului: Definim semnătura metodei către care poate indica delegatul.
public delegate int MyDelegate(int x, int y); -
Definirea metodelor: Creăm metode cu semnătura corespunzătoare delegatului.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Utilizarea delegatului: Creăm o instanță a delegatului și îi atribuim o metodă. Apoi, apelăm metoda prin delegat.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Creăm o instanță a delegatului și îi atribuim metoda Add MyDelegate del = new MyDelegate(calc.Add); // Apelăm metoda Add prin delegat int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Rezultatul adunării: {result1}"); // Reatribuiem delegatul la metoda Subtract del = calc.Subtract; // Apelăm metoda Subtract prin delegat int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Rezultatul scăderii: {result2}"); } }
În acest exemplu, MyDelegate poate indica orice metodă care acceptă doi argumente întregi (int x, int y) și returnează un întreg (int). Creăm două instanțe de delegat (del), atribuindu-le metodele Add și Subtract, și apoi folosim delegatul pentru a apela aceste metode.