当前位置:  开发笔记 > 编程语言 > 正文

你能解释一下lambda表达式吗?

如何解决《你能解释一下lambda表达式吗?》经验,为你挑选了1个好方法。

我真的没有得到 lambda表达式.虽然他们自ALGOL时代就已存在,但直到最近,当Python和Ruby变得非常受欢迎时,我才开始听到它们.既然C#具有=>语法,那么我的世界(.NET)中的人们越来越多地讨论lamdba表达式.

我已经读过关于lambda演算的维基百科文章,但我不是一个真正的数学家.从实际角度来看,我并不是真的理解它.我什么时候会使用lambda表达式?为什么?我怎么知道这应该是我应该做的?

您能否以前后格式展示如何使用lambda表达式解决问题的示例?任何命令式语言都可以,但C#对我来说最容易理解.



1> Jon Skeet..:

基本上就C#而言,lambda表达式是创建委托(或表达式树)的简单方法,但是现在让我们把它们放在一边.

在C#1中,我们只能从普通方法创建委托实例.在C#2中,我们获得了匿名方法.在C#3中,我们获得了lambda表达式,这类似于更简洁的匿名方法.

当你想表达一些取一个值并返回一个值的逻辑时,它们特别简洁.例如,在LINQ的上下文中:

                       // Only include children - a predicate
var query = dataSource.Where(person => person.Age < 18) 
                       // Transform to sequence of names - a projection
                      .Select(person => person.Name);

在我关于闭包的文章中,对此进行了更全面的讨论 - 以及其他方面.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有