Что такое delegate в C#?
В C# делегаты представляют собой типизированные ссылки на методы, что позволяет передавать методы как параметры, возвращать их из методов, а также использовать их для определения событий и обратных вызовов. Делегаты играют важную роль в создании гибких и расширяемых программных решений.
Особенности:
- Типизированные ссылки на методы: Делегаты позволяют создавать переменные, которые могут хранить ссылки на методы с определенной сигнатурой.
- События и обратные вызовы: Делегаты часто используются для реализации событий и обратных вызовов, позволяя объектам оповещать другие объекты о событиях.
- Анонимные методы и лямбда-выражения: C# поддерживает анонимные методы и лямбда-выражения, что делает код с использованием делегатов более компактным и читаемым.
// Определение делегата
delegate int MathOperation(int x, int y);
// Пример использования делегата
class Calculator
{
static int Add(int a, int b) => a + b;
static int Subtract(int a, int b) => a - b;
static void Main()
{
// Создание экземпляра делегата и привязка к методам
MathOperation addOperation = Add;
MathOperation subtractOperation = Subtract;
// Использование делегата для вызова методов
int resultAdd = addOperation(5, 3);
int resultSubtract = subtractOperation(8, 2);
Console.WriteLine($"Результат сложения: {resultAdd}");
Console.WriteLine($"Результат вычитания: {resultSubtract}");
}
}
Комментарии