Простите меня, если это глупый вопрос, признаюсь, я не особо задумывался над этим.
Но когда вы предпочтете использовать обратный вызов (например, передачу Func или Action), а не раскрывать и использовать событие?
ОБНОВЛЕНИЕ
Причиной этого вопроса была следующая проблема:
У меня есть класс ThingsHandler, который можно связать с ThingEditor. ThingsHandler обрабатывает список вещей, знает их порядок, какой из них является «текущим», когда новые добавляются или удаляются и т. Д.
ThingEditors могут изменять только одну вещь.
ThingsHandler должен предупреждать ThingEditor, когда пользователь выбирает новую вещь для редактирования, а ThingEditor должен предупреждать ThingsHandler, когда пользователь говорит «готово».
Что меня беспокоит, так это то, что эти два класса содержат ссылки друг на друга - хотя я думаю, что это неизбежно - или привязаны к событиям в обоих направлениях. Я задавался вопросом, было ли «чище» использование обратного вызова в одном направлении.
Я подозреваю, что для этого есть шаблон дизайна, и смиренно прошу прощения за свое невежество (и лень).