关于Lambda表达式

bxhxb 2012-07-20 11:02:57
最近看了Lambda表达式的说明,还是有一些不明白。
只说针对委托方面的(表达式树还没有看),MSDN上的代码样例如下。


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时多用这个,有没有更具体的分析什么时候合适用呢?

谢谢。
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkf181 2012-07-20
  • 打赏
  • 举报
回复
x => x * x; 第一个x 是方法的参数 后边是方法体 Lambda表达式其实是匿名方法
q107770540 2012-07-20
  • 打赏
  • 举报
回复
可以当成是匿名委托来理解
bdmh 2012-07-20
  • 打赏
  • 举报
回复
不只linq使用,lamda表达式其实就是委托
bdmh 2012-07-20
  • 打赏
  • 举报
回复
不只linq使用,lamda表达式其实就是委托
Mr_graceless 2012-07-20
  • 打赏
  • 举报
回复
其实你的例子只是其中应用的一方面,还有很多Find(),Select()等操作都是Lambda形式

foreach可以改为.Where(条件)等形式
Mr_graceless 2012-07-20
  • 打赏
  • 举报
回复
所有的foreach语句都可以改为Lambda表达式
new_fengzi 2012-07-20
  • 打赏
  • 举报
回复
建议 看看c# in depth 讲解 lambda的演化过程。
再看下 clr via c# 讲解的委托,或许会有点了解;

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧