Когда это целесообразно поднять событие в C#?Когда использовать пользовательские события C#
В качестве примера, в нашей системе у нас есть объекты данных, отправляемые нам, скажем, 50 в минуту, из внешней системы. Получив пакет данных, мы должны обработать его другим объектом. Было бы лучше использовать событие или простой вызов метода в этой ситуации?
Событие кажется интуитивно естественным, но я не понимаю, что это может предложить, по сравнению с простым использованием обычного вызова метода.
Я не согласен с оператором «не заменять вызовы функций». Обработчики событий - это функциональные вызовы. Событие предназначено для использования для предоставления коду (функциям) возможности выполнить, когда условие выполняется раздельно. Подумайте о средствах управления; они дают императивный код (функции) возможность запускать, когда пользователь что-то делает. Еще одно замечание: обработчики событий ARE и, таким образом, передача Action и передача EventHandler - это одно и то же; у них просто разные подписи. При этом я являюсь БОЛЬШИМ пользователем класса делегата Action –
С точки зрения шаблонов то, что вы описываете, практически такое же, как событие, за исключением того, что требуется ровно один подписчик. –
Я предпочитаю просто передавать функции Action <>, поскольку он избавляется от необходимости делегатов, и это упрощает мой код, я считаю, что делает его более гибким. –