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:
-
Declaración del delegado: Definimos la firma del método al que puede apuntar el delegado.
public delegate int MyDelegate(int x, int y); -
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; } } -
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.