Кто знает почему сделали паттерн подписки и отписки от событий примерно так:
SomeEvent += MyHandler;
SomeEvent -= MyHandler;
SomeEvent.addEventListener(MyHandler);
SomeEvent.removeEventListener(MyHandler);
Тут ведь получается, что нужно хранить этот 'MyHandler' только для того, чтобы отписаться от события.
Т.е. его нельзя сделать анонимной функцией, локальной переменной и т.д.
Эти мысли привели к более разумному применению как например в Rx, где подписка возвращает объект через который можно отписаться.
MySubscription = SomeEvent.Subscribe(MyHandler)
MySubscription.Dispose();
Даже в старом WinAPI был второй вариант.
Кто же все таки посчитал, что первый подход лучше ?