Sobes.tech
Junior

Proporcione un ejemplo de uso de delegados en C#.

sobes.tech AI

Respuesta de la IA

Los delegados son punteros seguros en tipos a métodos. Permiten pasar métodos como argumentos, asignarlos a variables y llamarlos a través de esas variables. Los delegados se usan ampliamente para crear eventos, callbacks y programación asíncrona.

Ejemplo de uso de un delegado:

  1. Declaración del delegado: Definimos la firma del método al que puede apuntar el delegado.

    public delegate int MyDelegate(int x, int y);
    
  2. Definición de métodos: Creamos métodos con la firma correspondiente al delegado.

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. Uso del delegado: Creamos una instancia del delegado y le asignamos un método. Luego llamamos al método a través del delegado.

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // Crear una instancia del delegado y asignarle el método Add
            MyDelegate del = new MyDelegate(calc.Add);
    
            // Llamar al método Add a través del delegado
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"Resultado de la suma: {result1}");
    
            // Reasignar el delegado al método Subtract
            del = calc.Subtract;
    
            // Llamar al método Subtract a través del delegado
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"Resultado de la resta: {result2}");
        }
    }
    

En este ejemplo, MyDelegate puede apuntar a cualquier método que acepte dos argumentos enteros (int x, int y) y devuelva un entero (int). Creamos dos instancias del delegado (del), asignándoles los métodos Add y Subtract, y luego usamos el delegado para llamar a estos métodos.