c# 3.0 初体验 2 (Lambda表达式)

原创 2007年09月18日 21:53:00
 
C#2.0的匿名方法允许我们以内联的方式来实现委托,而c#3.0的Lambda表达式允许我们使用一种更加接近人的思维,更加自然的方式来实现类似匿名方法的方式。计算机的发展告诉我们,人们对计算机上的研究都是不断在趋近于人的思维,而不是计算机的思维,比如我们已开始使用的汇编语言,然后出现了高级语言,面向对象的高级语言,等等。如何让计算机能够理解普通人的需求,我们程序员的作用就是起这种桥接作用,我们要不断的尝试让计算机更好的理解编成人员的思想。计算机能理解的抽象层级的提高,我们程序员就能更减轻痛苦。看下边的例子:
List.FindAll(
     Delegate(string s){
              Return  s.indexof(“abc”)>0;}
Lambda
    List.FindAll(s=>s.indexof(“abc”)>0);
    很明显,lamdba表达式更加接近人的思维,而不是象内联方法那样努力的在让计算机来理解,而lambda表达式表达的非常的自然,如果我们能以这样的方式编写程序,那么是多么的舒服。我们上边的内联方式有委托,有返回值,都是为计算机写,而不是趋近于人来思考的东西。
    (参数列表)=>表达式或者语句块
    (x,y)=〉x*y
     其实编译器会将Lambda表达式在编译的时候转化成委托类型。
Lambda表达式和委托类型
Lambda表达式L可以被转化为委托类型D,需要满足:
L和D拥有相同的参数个数。
L的参数类型与D的参数类型相同,主要隐式类型要参与类型辨析。
D的返回类型与L相同,无论L是表达式,还是语句块。
比如x=〉x*10的委托类型就是 delegate int MyDeg(int)
我们有下边的例子:
表达式MyClass.Process((x,y)=>x*y)就等同于下边的一段代码:
MyDletegate md1=new MyDelegate1(XXXXX);
MyClass.Process(md1);
Public static int bool XXXXX(int x,int y)
{
    Return x*y
}
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c# 3.0新特性之使用Lambda表达式

c# 3.0新特性之使用Lambda表达式2009年8月18日 云飞扬 发表评论 阅读评论 -Working with Lambda Expressions 使用Lambda表达式Lambda表达式有...

C# 3.0语言的新特性——Lambda表达式

Lambda表达式 在C# 3.0 中,Microsoft 添加了“lambda 表达式”。lamdba表达式曾经用于很久以前的LISP计算机语言中,在1936年由一个美国数学家Alonzo Chu...

Java8初体验(一)lambda表达式语法

本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,...

Java8初体验(一)lambda表达式语法

本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,...

Java8初体验(一)lambda表达式语法

本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,...
  • wauit
  • wauit
  • 2014-04-14 16:30
  • 523

Java8初体验(一)lambda表达式语法

转自http://ifeve.com/lambda/ 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望...

2):Lambda表达式_PDF

  • 2009-03-04 00:27
  • 167KB
  • 下载

LINQ体验(2)--C# 3.0新语言特性和改进(上篇)

LINQ体验(2)--C# 3.0新语言特性和改进(上篇) 在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的第二部分——介绍C# 3.0新语言特性和改进。总体来说,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)