Fornisci un esempio di utilizzo dei delegati in C#.
sobes.tech AI
Risposta dell'AI
I delegati sono puntatori sicuri di tipo a metodi. Permettono di passare metodi come argomenti, assegnarli a variabili e chiamarli tramite queste variabili. I delegati sono ampiamente usati per creare eventi, callback e programmazione asincrona.
Esempio di utilizzo di un delegato:
-
Dichiarazione del delegato: Definiamo la firma del metodo a cui il delegato può puntare.
public delegate int MyDelegate(int x, int y); -
Definizione dei metodi: Creiamo metodi con firma corrispondente al delegato.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Utilizzo del delegato: Creiamo un'istanza del delegato e le assegniamo un metodo. Poi chiamiamo il metodo tramite il delegato.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Creiamo un'istanza del delegato e le assegniamo il metodo Add MyDelegate del = new MyDelegate(calc.Add); // Chiamiamo il metodo Add tramite il delegato int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Risultato della somma: {result1}"); // Riassegniamo il delegato al metodo Subtract del = calc.Subtract; // Chiamiamo il metodo Subtract tramite il delegato int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Risultato della sottrazione: {result2}"); } }
In questo esempio, MyDelegate può puntare a qualsiasi metodo che accetti due argomenti interi (int x, int y) e restituisca un intero (int). Creiamo due istanze del delegato (del), assegnandogli i metodi Add e Subtract, e poi usiamo il delegato per chiamare questi metodi.