相关疑难解决方法(0)

为什么C#中的事件实现默认情况下不使用弱事件模式?

这个问题可能会导致猜测性的答案,但我认为event的实现背后有一个深思熟虑的设计决策.

只要事件的发布者处于活动状态,的事件模式就会使订阅者保持活动状态.因此,如果你没有取消订阅,你就会泄漏内存(好吧,并没有真正泄漏 - 但内存仍然不必要地占用).

如果我想阻止这种情况,我可以取消订阅事件或实现MSDN中提出的弱事件模式.

由于事件模式导致了很多问题(对于初学者?),问题是:为什么决定发布者保留对订阅者的强引用,而不是让它们独立或允许开发人员明确拥有strongweak修饰符?

关于这个主题已经有了几个问题,答案听起来很合理,但没有一个真正回答为什么会这样.

.net c# events weak-references

19
推荐指数
1
解决办法
2162
查看次数

标签 统计

.net ×1

c# ×1

events ×1

weak-references ×1