Sobes.tech
Junior

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:

  1. Dichiarazione del delegato: Definiamo la firma del metodo a cui il delegato può puntare.

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