Приведите пример использования делегатов в C#.
Answer from AI
sobes.tech AI
Делегаты представляют собой типобезопасные указатели на методы. Они позволяют передавать методы в качестве аргументов, присваивать их переменным и вызывать через эти переменные. Делегаты широко используются для создания событий, обратных вызовов и асинхронного программирования.
Пример использования делегата:
-
Объявление делегата: Определяем сигнатуру метода, на который может указывать делегат.
public delegate int MyDelegate(int x, int y); -
Определение методов: Создаем методы с сигнатурой, соответствующей делегату.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Использование делегата: Создаем экземпляр делегата и присваиваем ему метод. Затем вызываем метод через делегат.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Создаем экземпляр делегата и присваиваем ему метод Add MyDelegate del = new MyDelegate(calc.Add); // Вызываем метод Add через делегат int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Результат сложения: {result1}"); // Переназначаем делегат на метод Subtract del = calc.Subtract; // Вызываем метод Subtract через делегат int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Результат вычитания: {result2}"); } }
В этом примере MyDelegate может указывать на любой метод, который принимает два целочисленных аргумента (int x, int y) и возвращает целое число (int). Мы создаем два экземпляра делегата (del), присваиваем им методы Add и Subtract соответственно, а затем используем делегат для вызова этих методов.