Почему реализация событий в C # по умолчанию не использует слабый шаблон событий?
Этот вопрос может привести к спекулятивным ответам, но я предполагаю, что за реализацией @ стоит продуманное дизайнерское решениevent
в C #.
Шаблон событий в C # сохраняет подписчика живым, пока жив издатель события. Таким образом, если вы не отмените подписку, у вас будет утечка памяти (ну, на самом деле, не утечка - но память остается излишне занятой).
Если я хочу предотвратить это, я могу отписаться от событий или реализовать слабый шаблон событий как предложено на MSDN.
Поскольку шаблон событий вызывает много проблем (для начинающих?), Возникает вопрос: почему было принято решение о том, что издатель сохраняет строгую ссылку на подписчика, а не делает их независимыми или позволяет разработчикам явно иметьstrong
илиweak
модификатор?
Уже есть паравопросо здесь об этой теме и ответы звучат разумно, но никто не отвечает, почему это так.