关于代表的问题

时间:2010-08-05 19:15:41

标签: c# delegates

  

可能重复:
  C#: Difference between ‘ += anEvent’ and ‘ += new EventHandler(anEvent)’

让我们有这个代表:

delegate int Process (int x ,int y) ; 

和这个方法:

int Add (int x , int y)
{
    return x+y ; 
}

我的问题:

有什么区别:

Process MyProcess = Add ; 

和:

Process MyProcess = new Process (Add) ; 

1 个答案:

答案 0 :(得分:6)

在C#1.x中,只会编译第二个版本。

C#2.0添加implicit method group conversions,允许您编写第一个版本。两者是等价的。有时,在存在歧义的情况下,有必要使用更明确的形式。

有关详细信息,请参阅Jon Skeet的文章Delegate inference中的Delegate changes部分。