Lambda表达式与匿名方法

我想知道有什么区别。 目前我正在学习这些东西,在我看来,这些都是一样的:

delegate void X(); X instanceOfX; instanceOfX = delegate() { code }; instanceOfX = () => { code }; 

另外如果lambda更新,我应该只使用lambda并忘记匿名方法吗?

是的,lambda表达式只是非常特殊的匿名方法。

但是,存在一些深刻的差异。 从Eric Lippert的Lambda Expression与匿名方法,第一部分开始 ,继续本系列的其余部分。

唯一的区别是lambda可以很容易地转换为Expression> 。 委托只是方法/闭包,但lambda也可以分解为表达式树:

 Expression> expr = x => x*2; // Expression tree Func fun = x => x*2; // function delegate int MyDelegate(int x); MyDelegate del = x => x*2; // Same as function, delegate