💀
Второй курс РПО
C#
C#
  • Типы данных и переменные
  • Массивы и списки
  • Управляющие конструкции
  • Методы
  • Классы и объекты
  • Инкапсуляция, наследование и полиморфизм
  • Интерфейсы
  • Обработка исключений
  • Работа с файлами
  • Делегаты и события
  • Краткие определения основных понятий
  • Вопросы с контрольной
  • Тестовые вопросы по темам
Powered by GitBook
On this page
  • Делегаты
  • События
  • Полезные советы

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

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

Делегаты

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

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.

MessageHandler handler = delegate (string message)
{
    WriteLine("Анонимный метод: " + message);
};
handler("Тест"); // Вывод: Анонимный метод: Тест

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

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

MessageHandler handler = (message) => WriteLine("Лямбда: " + message);
handler("Тест"); // Вывод: Лямбда: Тест

События

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

class Button
{
    public event MessageHandler OnClick;

    public void Click()
    {
        OnClick?.Invoke("Кнопка нажата!");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Button button = new Button();
        button.OnClick += (message) => WriteLine(message);
        button.Click(); // Вывод: Кнопка нажата!
    }
}

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

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

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

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

PreviousРабота с файламиNextКраткие определения основных понятий

Last updated 7 days ago