我应该实例化一个新的代表吗?

Ver*_*rax 6 .net c# delegates event-handling

我刚刚意识到我可以通过两种方式添加事件处理程序:

考虑像这样的事件处理程序:

private void MyEventHandler()
{}
Run Code Online (Sandbox Code Playgroud)

方法1:实例化新的委托

MyObject.MyEvent += new Action(MyEventHandler);
Run Code Online (Sandbox Code Playgroud)

方法2:添加事件处理程序而不实例化新委托

MyObject.MyEvent += MyEventHandler;
Run Code Online (Sandbox Code Playgroud)

应该考虑这两种实现之间有什么区别吗?

Mic*_*tum 6

没有区别,生成的IL是相同的.尽管Visual Studio仍然在Tab Completion上执行第一个表单,但在.net/c#2.0中引入了较短的表单作为便利函数.

有关更多信息,请参阅此问题.