Встречается на собеседованиях • сегодня

Что такое событие

Событие (event) в C# — это механизм, позволяющий объекту уведомлять другие объекты о произошедших действиях. Основан на паттерне "Издатель-Подписчик".

Ключевые моменты:

  • Объявляется с ключевым словом event.
  • Тип события — делегат (Action, EventHandler или кастомный).
  • Подписка через +=, отписка через -=.

Пример:

csharp
public class Button
{
    public event EventHandler Clicked;  

    public void Click()
    {
        Clicked?.Invoke(this, EventArgs.Empty); // Проверка на null и вызов
    }
}

// Использование:
var button = new Button();
button.Clicked += (sender, e) => Console.WriteLine("Button clicked!");
button.Click(); // Выведет "Button clicked!"

Нюансы:

  • Потокобезопасность: лучше сохранять делегат в локальную переменную перед вызовом.
  • Отписка: важно избегать "утечек" памяти, отписываясь от событий, когда они не нужны.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы