Здравствуйте, Tesh, Вы писали:
T>Я бы вообще не использовал события из-за опасности утечки памяти (если забыли отписаться)
Чтоб не забыть отписаться потом, мы планируем отписку сразу после подписки:
_subscriptionDisposables.Add(/* Unsubscribe */);
Это помимо прочего позволяет не удерживать явную ссылку на подписчика.
И как раз из-за невозможности отписки и опасности утечки памяти мы не можем использовать неименованные лямбды:
subject.SomeEvent += (sender, e) => { /* Captures some variables. */ };
subject.SomeEvent -= ???
T>но если и использовать, то зачем объединять код, обрабатывающий события с кодом, выполняющим подписку?
А зачем их разносить, если подписка осуществляется только в одном месте и код обработчика нежелательно вытаскивать наружу?