【发布时间】:2010-10-27 08:17:07
【问题描述】:
我可能只是有点神经质,但我经常发现自己有一个发布事件的类,并且我发现从类本身(例如在构造函数中)订阅这个事件很方便,而不仅仅是订阅外部类。
这对我来说听起来很合理,但我不禁感到这是一种糟糕的做法,原因很简单,我总是面临这样一个问题:“为什么不执行你在触发事件的代码中的事件处理程序?”
public class Button
{
public Button()
{
this.Click += someHandler; // bad practice?
}
public event EventHandler Click;
public void HandleInput()
{
if (someInputCondition)
{
// Perform necessary actions here rather than
// subscribing in the constructor?
this.Click(this, ...);
}
}
}
订阅自己的活动有什么缺点吗?
【问题讨论】: