我在课堂上注册了一个活动,并且像往常一样,我很懒惰,只使用 Visual Studio 2008 Pro 中内置的自动完成功能,它会自动创建委托创建及其关联的方法。
public abstract class FooBase
{
protected event EventHandler<MyValueChangedArgs> MyValueChanged;
protected FooBase()
{
MyValueChanged +=
new EventHandler<MyValueChangedArgs>(HandleMyValueChanged);
}
private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
{
// Some handling logic
}
}
通常,当 Visual Studio 为我生成事件处理程序时,我不会三思而后行,但后来我收到了 Refactor 的推荐!赞成“删除冗余代表创建”。该建议的结果是:
public abstract class FooBase
{
protected event EventHandler<MyValueChangedArgs> MyValueChanged;
protected FooBase()
{
MyValueChanged += HandleMyValueChanged;
}
private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
{
// Some handling logic
}
}
在什么情况下创建委托是多余的,什么时候创建委托合适?
谢谢。