我正在注册我班上的一个事件,并且按照惯例,我很懒,只使用Visual Studio 2008 Pro中内置的自动完成功能,它自动创建委托创建及其相关方法.
public abstract class FooBase { protected event EventHandlerMyValueChanged; protected FooBase() { MyValueChanged += new EventHandler (HandleMyValueChanged); } private void HandleMyValueChanged(object sender, MyValueChangedArgs e) { // Some handling logic } }
通常我不会三思而后行Visual Studio为我生成事件处理程序,但后来我收到了Refactor的推荐!专业"删除冗余代表创建".建议结果如下:
public abstract class FooBase { protected event EventHandlerMyValueChanged; protected FooBase() { MyValueChanged += HandleMyValueChanged; } private void HandleMyValueChanged(object sender, MyValueChangedArgs e) { // Some handling logic } }
在什么情况下委托创建是多余的,委托创建何时适当?
谢谢.
我认为那是重构!告诉你那条线
MyValueChanged += new EventHandler(HandleMyValueChanged);
可以缩短,编译器将推断事件处理程序创建和TEventArgs类型参数...
在什么情况下委托创建是多余的,委托创建何时适当?
关于设计器生成的代码......
对于那个很抱歉.我们在产品计划中没有时间在匿名方法添加到C#时生成更短的代码.
我总是编辑生成的代码以删除额外的语法.