Ste*_*ane 7 c# events event-handling
在Intellisense自动完成的指导下,我总是分配这样的事件处理程序.
RangeSelector.RangeChanged += new EventHandler(RangeSelector_RangeChanged);
Run Code Online (Sandbox Code Playgroud)
我最近注意到我的一位同事就是这样做的.
RangeSelector.RangeChanged += RangeSelector_RangeChanged;
Run Code Online (Sandbox Code Playgroud)
这两种方法在语法上都是正确的,编译和行为符合预期.
这些方法的不同之处,好处或缺点是什么.它们是否会产生相同的IL代码,或者是否需要注意一些微妙的差异?
Kon*_*lph 12
这些方法的不同之处,好处或缺点是什么.
第二种方法比较新,即只支持C#2.0(我相信),它增加了从方法组(即方法名称)到委托的自动转换.因此构造函数调用由编译器添加,第二种方法只是第一种方法的语法糖.
因此,两者之间没有其他区别.
由于第二种方法与第一种方法相同,语法较少,因此应该首选.