2011-07-29 58 views

回答

4

假设Evt键入为EvtEventHandler那么没有区别(除非使用C#1.2,其中只有第一个存在)。

使用无论你想要的。

4

没关系。在幕后,两种方式都是相同的(编译器生成相同的代码)。请参阅ECMA C#规范中的“13.6方法组转换”(您可以阅读它here)。

3

是的,他们做出了相同的结果。但是,如果您使用的是1.01.1,则必须指定EvtEventHandler,对于更高版本的2.0和更高版本,您可以从中删除它。

2

对于IL,它们是相同的,

IL_0020: newobj  instance void [mscorlib]System.EventHandler::.ctor(object, 
                    native int) 
    IL_0025: callvirt instance void ConsoleApplication15.A::DoEvt(class [mscorlib]System.EventHandler) 

但我认为第一个是有意义的维护你的代码。

相关问题