如果某个类在其方法中触发事件,则该类不必知道订阅其事件的人或谁。如果有任何用户,这也不重要。处理可能没有任何订阅者的事件
在下面的代码中,如果没有任何订阅者发生OnTrigger事件,则会发生异常。
public class EventTrigger
{
public static void Main(string[] args)
{
(new EventTrigger()).Trigger();
}
public delegate void Delegate1();
public event Delegate1 OnTrigger;
void Trigger()
{
OnTrigger();
}
}
我可以这样称呼事件;
但它对我来说似乎很奇怪,因为triggerer不必知道订阅。
我的问题是:
我一定要检查,如果事件引用为null,每当我使用它。
这里是关于这个主题的一个有趣的讨论:http://stackoverflow.com/questions/248072/evil-use-of-extension-methods – ken 2012-03-01 16:44:15
我并不孤单在宇宙中。这让我感觉很好。但我认为这也不是一个好方法。不是因为它是通过扩展方法完成的。因为它也需要更多的键盘输入并且变得更加脏。 – 2012-03-01 20:00:51