日期:2014-05-18  浏览次数:20812 次

关于Lambda表达式
最近看了Lambda表达式的说明,还是有一些不明白。
只说针对委托方面的(表达式树还没有看),MSDN上的代码样例如下。

C# code

delegate int del(int i);
static void Main(string[] args)
{
    del myDelegate = x => x * x;
    int j = myDelegate(5); //j = 25
}



是不是说Lambda表达式就可以代替函数的某个参数是一个delegate/action/event的类型呢?action/event返回值都是void,那么=>右边的值都返回void。=>代替delegate时,=>左边就是delegate的参数,=>右边就是delegate的返回值。
大概是这么理解吗?有没有比较好的帖子来具体讲解的,在论坛上面没找到。

还有就是Lambda表达式的适用范围。MSDN上没有,一些帖子说是用LINQ时多用这个,有没有更具体的分析什么时候合适用呢?

谢谢。


------解决方案--------------------
不只linq使用,lamda表达式其实就是委托
------解决方案--------------------
可以当成是匿名委托来理解
------解决方案--------------------
x => x * x; 第一个x 是方法的参数 后边是方法体 Lambda表达式其实是匿名方法