前端之家收集整理的这篇文章主要介绍了
c# – 显式事件添加/删除,误解?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近一直在研究内存管理,并一直在研究事件的管理方式,现在我看到事件
订阅的显式
添加/
删除语法.
我认为这很简单,添加/删除只是允许我在订阅和取消订阅时执行其他逻辑?我得到它,还是有更多的?
此外,当我在这里,任何建议/最佳做法清理我的事件句柄.
添加/
删除语法通常用于将事件实现“转发”到另一个类.
清理订阅(而不是“事件句柄”)最好通过实现IDisposable来完成.
更新:对象应该实现IDisposable有一些变化. Rx团队从设计角度做出了最好的决定:订阅本身是IDisposable.常规.NET事件没有表示订阅的对象,所以选择是在发布者(定义了事件的类)和订阅者(通常是包含正在订阅的成员函数的类)之间.虽然我的设计本能更喜欢使用户IDisposable,但大多数真实世界的代码使发布商IDisposable:这是一个更简单的实现,并且可能存在没有实际的订阅者实例的情况.
(也就是说,如果代码实际上清除了事件订阅,大多数代码都没有.)
原文链接:https://www.f2er.com/csharp/91922.html