Делегаты и события

Делегаты позволяют ссылаться на методы, а события — уведомлять о действиях.

Делегаты

Делегат — это тип, который указывает на метод с определённой сигнатурой.

using static System.Console;

delegate void MessageHandler(string message);

class Program
{
    static void Main(string[] args)
    {
        MessageHandler handler = ShowMessage;
        handler("Привет!"); // Вывод: Привет!
    }

    static void ShowMessage(string message)
    {
        WriteLine(message);
    }
}

Анонимные методы

Можно создавать методы без имени с помощью delegate.

Лямбда-выражения

Лямбда-выражения — более краткий способ создания делегатов.

События

События позволяют классу уведомлять другие части программы о действиях. Используется ключевое слово event.

Полезные советы

  • Используйте делегаты для передачи методов как параметров.

  • События полезны для реализации паттерна "наблюдатель".

  • Лямбда-выражения упрощают работу с делегатами.

Last updated