Forneça um exemplo de uso de delegados em C#.
sobes.tech IA
Resposta da IA
Os delegados são ponteiros seguros de tipo para métodos. Permitem passar métodos como argumentos, atribuí-los a variáveis e chamá-los através dessas variáveis. Os delegados são amplamente utilizados para criar eventos, callbacks e programação assíncrona.
Exemplo de uso de um delegado:
-
Declaração do delegado: Definimos a assinatura do método ao qual o delegado pode apontar.
public delegate int MyDelegate(int x, int y); -
Definição de métodos: Criamos métodos com assinatura correspondente ao 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 do delegado: Criamos uma instância do delegado e atribuímos um método. Depois, chamamos o método através do delegado.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Criar uma instância do delegado e atribuir o método Add MyDelegate del = new MyDelegate(calc.Add); // Chamar o método Add através do delegado int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Resultado da soma: {result1}"); // Reatribuir o delegado ao método Subtract del = calc.Subtract; // Chamar o método Subtract através do delegado int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Resultado da subtração: {result2}"); } }
Neste exemplo, MyDelegate pode apontar para qualquer método que aceite dois argumentos inteiros (int x, int y) e retorne um inteiro (int). Criamos duas instâncias do delegado (del), atribuindo-lhes os métodos Add e Subtract, e depois usamos o delegado para chamar esses métodos.