静态公共事件

本文关键字:事件 静态 | 更新日期: 2023-09-27 18:15:28

我有一个公共静态类,其中有一些我在我的informs项目中使用的公共内容。是个好主意来添加一个公共静态事件退出并重新登录事件和登记所有相关类和这个事件来减少代码的形式,因为目前我有很多代码注销并登录方法来处理形式和不同的类登录或者,相反,我只是火事件在登录和注销的方法,把代码事件处理程序方法的每个类事件。这种做法是好是坏?

静态公共事件

这很糟糕,因为侦听器对象(绑定到那些静态事件)永远不会被垃圾收集,您应该完全避免使用静态事件。这就是弱事件模式诞生的原因。虽然我不是说你需要使用这个模式(因为我不是很了解你的应用程序的内部),但阅读这个模式会帮助你更仔细地设计你的应用程序。

关于这个问题有一篇(古老但有用的)文章。我并不是说你应该使用这种模式;我的意思是,研究这个模式会告诉你为什么静态事件不是一个好主意。

对于这种类型的场景,您还可以使用Mediator设计模式来订阅和通知"全局"事件。

Mediator.Subscribe("Login", callbackForLogin);
Mediator.Notify("Login", parameters);

在实现此设计模式时,您可以使用"WeakReference"来避免内存泄漏(未被垃圾收集的引用)。

例如

:http://zamjad.wordpress.com/2012/03/05/using-mediator-to-communicate-between-user-controls-part-7/