• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 浅谈对Lambda表达式的理解

浅谈对Lambda表达式的理解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了lambda表达式,python lambda表达式,java lambda表达式,c#lambda表达式,java8 lambda表达式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

  在.NET 1.0的时候,大家都知道我们经常用到的是委托。有了委托呢,我们就可以像传递变量一样的传递方法。在一定程序上来讲,委托是一种强类型的托管的方法指 针,曾经也一时被我们用的那叫一个广泛呀,但是总的来说委托使用起来还是有一些繁琐。来看看使用一个委托一共要以下几个步骤:

用delegate关键字创建一个委托,包括声明返回值和参数类型
使用的地方接收这个委托
创建这个委托的实例并指定一个返回值和参数类型匹配的方法传递过去
好啦,我承认啦上面是自己在网上看到的,但是它很好的介绍了委托,在以前要使用委托的话,就必须要进过上面的3个不步奏,在我看来真的觉得是挺繁杂的,所以主题来了Lambda表达式,它可以通过匿名的方法来绕过步奏2,所以我只需要定义一个委托后,再使用Lambda表达式来实现委托,下面写一个小小的例子看看吧:
// 编译器不知道后面到底是什么玩意,所以我们这里不能用var关键字

Action dummyLambda = () => { Console.WriteLine("Hello World from a Lambda expression!"); };
 
// double y = square(25);
Func<double, double> square = x => x * x;
 
// double z = product(9, 5);
Func<double, double, double> product = (x, y) => x * y;
 
// printProduct(9, 5);
Action<double, double> printProduct = (x, y) => { Console.WriteLine(x * y); };
 
// var sum = dotProduct(new double[] { 1, 2, 3 }, new double[] { 4, 5, 6 });
Func<double[], double[], double> dotProduct = (x, y) =>
{
  var dim = Math.Min(x.Length, y.Length);
  var sum = 0.0;
  for (var i = 0; i != dim; i++)
    sum += x[i] + y[i];
  return sum;
};
 
// var result = matrixVectorProductAsync(...);
Func<double, double, Task<double>> matrixVectorProductAsync = async (x, y) =>
{
  var sum = 0.0;
  /* do some stuff using await ... */
  return sum;
};
</div>

 从上面的代码中我们可以看出:

如果只有一个参数,不需要写()
如果只有一条执行语句,并且我们要返回它,就不需要{},并且不用写return
Lambda可以异步执行,只要在前面加上async关键字即可
Var关键字在大多数情况下都不能使用

以上所述就是本文的全部内容了,希望大家能够喜欢。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SqlDataReader生成动态Lambda表达式
  • 浅谈对Lambda表达式的理解

相关文章

  • 2017-05-11ASP.NET简化编辑界面解决思路及实现代码
  • 2017-05-11asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数据
  • 2017-05-11通过ASP.net实现flash对数据库的访问
  • 2017-05-11ASP.NET微信公众号添加菜单
  • 2017-05-11ASP.NET 缓存分析和实践浅析提高运行效率
  • 2017-05-11asp.net下通过泛解析和伪静态实现二级域名的实现方法
  • 2017-05-11ASP.NET Web API如何将注释自动生成帮助文档
  • 2017-05-11DataGridView中CheckBox实现某一列单选
  • 2017-05-11asp.net session的使用与过期实例代码
  • 2017-05-11asp.net mvc路由篇 如何找到 IHttpHandler方法介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 深入Lumisoft.NET组件开发碰到乱码等问题的解决方法
    • asp.net 用继承方法实现页面判断session
    • .NET中开源文档操作组件DocX的介绍与使用
    • asp.net实现在XmlTextWriter中写入一个CDATA的方法
    • 将选择的图片显示在listview中,并显示filename,path和type的简单实例
    • Unicode中文转码函数代码
    • DiscuzNT 论坛与主站的同步登录与退出
    • 在ASP.NET 2.0中操作数据之五十七:在分层架构中缓存数据
    • JWT+Log4net配置与使用详解
    • asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有