【发布时间】:2012-11-20 23:14:14
【问题描述】:
将虚拟方法注册为事件处理程序,而不是注册一个委托给虚拟方法的私有方法,是否有任何问题?我更喜欢选项 1(这似乎可行),但我想确保它以后不会咬我。
选项 1
public class Controller1
{
public Controller1(EventNotifier eventNotifier)
{
eventNotifier.ImportantEvent += OnEventNotifierImportantEvent;
}
protected virtual void OnEventNotifierImportantEvent(object sender, EventArgs e)
{
}
}
选项 2
public class Controller2
{
public Controller2(EventNotifier eventNotifier)
{
eventNotifier.ImportantEvent += eventNotifier_OnImportantEvent;
}
private void eventNotifier_OnImportantEvent(object sender, EventArgs eventArgs)
{
OnEventNotifierImportantEvent(sender, eventArgs);
}
protected virtual void OnEventNotifierImportantEvent(object sender, EventArgs e)
{
}
}
【问题讨论】:
标签: c# .net events delegates virtual