C# 我应该选择哪种代码来调用委托方法?
要处理事件,我使用以下代码:C# 我应该选择哪种代码来调用委托方法?,c#,delegates,C#,Delegates,要处理事件,我使用以下代码: obj.Evt += new EvtEventHandler(DoEvt); 或 将产生同样的结果 所以。。。请告诉我该选哪一个!为什么呢?假设Evt的类型是EvtEventHandler,那么就没有区别了,除非使用C 1.2,其中只有第一个存在 你想用哪一个都行。没关系。在幕后,两种方法都是相同的——编译器生成相同的代码。请参阅ECMA C规范中的13.6方法组转换。您可以阅读它。是,它们产生相同的结果。但是,如果您使用的是1.0或1.1,则必须指定EvtEve
obj.Evt += new EvtEventHandler(DoEvt);
或
将产生同样的结果
所以。。。请告诉我该选哪一个!为什么呢?假设Evt的类型是EvtEventHandler,那么就没有区别了,除非使用C 1.2,其中只有第一个存在
你想用哪一个都行。没关系。在幕后,两种方法都是相同的——编译器生成相同的代码。请参阅ECMA C规范中的13.6方法组转换。您可以阅读它。是,它们产生相同的结果。但是,如果您使用的是1.0或1.1,则必须指定EvtEventHandler,对于2.0及更高版本,您可以将其删除。对于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)
但是我认为第一个对于维护代码是有意义的
IL_0020: newobj instance void [mscorlib]System.EventHandler::.ctor(object,
native int)
IL_0025: callvirt instance void ConsoleApplication15.A::DoEvt(class [mscorlib]System.EventHandler)