定义委托的两种方法

时间:2012-01-04 22:06:42

标签: c# .net delegates definition

  

可能重复:
  very simple delegate musing

我一直想知道这种定义委托的方法之间有什么区别

System.Action act;
act = MethodWithoutParameters;

和这一个

System.Action act;
act = new System.Action(MethodWithoutParameters);

。我应该更喜欢一个吗?如果是这样,为什么? 遗憾的是,我无法找到有关我的问题的更多信息。 如果有人能告诉我这两段代码之间的差异,我真的很感激。

3 个答案:

答案 0 :(得分:6)

它是语法糖:“隐式方法组转换”。编译器将第一个版本转换为第二个版本。

答案 1 :(得分:4)

这两段代码产生完全相同的IL。没有理由偏爱一个而不是另一个。这只是一种风格问题。

答案 2 :(得分:1)

完全相同,没有区别

我还要添加第三个​​,lambda!:

System.Action act = x=>DoSomething(x);