Lambda学习

    public class LambdaTest{public delegate void NoReturnNoPara();public delegate void NoReturnWithPara(int id, string name);public delegate int WithReturnWithPara(int id, string name);public void Show(){int iNum = 100;{//.NetFramework1.0 1.1NoReturnWithPara method = new NoReturnWithPara(this.Study);method.Invoke(123, "ByBoy");this.Study(123, "ByBoy");}{//.NetFramework2.0 匿名函数,其实就是个方法,不用独立声明;共享变量NoReturnWithPara method = new NoReturnWithPara(delegate (int id, string name){Console.WriteLine(iNum);Console.WriteLine($"{id}-{name}跟着Eleven老师学习.Net高级开发1!");});method.Invoke(234, "楠nan");}{//.NetFramework3.0  lambda表达式:参数列表 goes to  方法体NoReturnWithPara method = new NoReturnWithPara((int id, string name)=>{Console.WriteLine($"{id}-{name}跟着Eleven老师学习.Net高级开发2!");});method.Invoke(345, "ywa");}{//省略参数类型,语法糖,编译器自动推算,可以省略掉声明NoReturnWithPara method = new NoReturnWithPara((id, name)=>{Console.WriteLine($"{id}-{name}跟着Eleven老师学习.Net高级开发3!");});method.Invoke(456, "清池");}{//如果方法体只有一行 可以省略大括号和分号NoReturnWithPara method = new NoReturnWithPara((id, name) => Console.WriteLine($"{id}-{name}跟着Eleven老师学习.Net高级开发!4"));method.Invoke(456, "永远的油条");}{//实例化委托时,可以省略掉 new NoReturnWithPara(,  //也是编译器提供的便捷功能,是语法糖,编译后其实还是有这段代码的NoReturnWithPara method = (id, name) => Console.WriteLine($"{id}-{name}跟着Eleven老师学习.Net高级开发!5");method.Invoke(567, "风行天下");}//lambda表达式是什么?! //lambda是代码的简化,其本质是个方法,而不是委托(类),也不是委托的实例,只是实例化委托的时的参数!//反编译查看,会为lambda生成类中类,密封+私有,里面多了几个方法,跟lambda一一对应,lambda也是个语法糖,编译后会起名字//lambda表达式注册多播委托是无法移除的!//很多复杂的lambda不会写,可以回去写方法!{NoReturnWithPara method = (i, s) => Console.WriteLine($"{i}-{s}跟着Eleven老师学习.Net高级开发!6");}{//下面我准备去花式使用lambda,有问题直接问//Action 框架提供  0到16个参数  没有返回值的 泛型委托Action action = () => { };//参数为空 就小括号Action<string> action1 = s => Console.WriteLine(s); //只有一个参数 可以去掉小括号Action<string, int> action2 = (s, i) => Console.WriteLine($"{i}-{s}跟着Eleven老师学习.Net高级开发!6");Action<string, int, DateTime, long, string, int, DateTime, long, string, int, DateTime, long, string, int, DateTime, long> action16 = null;}{//Func 框架提供  0到16个参数 带返回值的   泛型委托Func<int> func = () => DateTime.Now.Year;//如果方法体只有一行 需要去掉retrunFunc<int, string> func1 = i => i.ToString();Func<int, string, DateTime> func2 = (i, s) => DateTime.Now;Func<string, int, DateTime, long, string, int, DateTime, long, string, int, DateTime, long, string, int, DateTime, long, decimal> func16 = null;}{//Action Func 都是.30出来,是为了统一委托的使用,以后只要用的到委托,都可以用。多线程Task.Run   Linq...}{//lambda表达式只能用在委托吗  //不是的  c#6 多了很多应用//表达式目录树,可以用lambda快速声明new List<int>().AsQueryable().Where(i => i > 3);Expression<Func<int, bool>> expression = i => i < 10;}}private void DoNothing(){ }private void Study(int id, string name){Console.WriteLine($"{id}-{name}跟着Eleven老师学习.Net高级开发!");}//起码是vs2015才能用public void SayHi() => Console.WriteLine(12345);public int Age => 3;}

[C#]LambdaTest相关推荐

  1. 在 Selenium 中使用 Lambdatest 进行跨浏览器测试

    Lambdatest是一个在线平台,它允许你在2000多个浏览器和操作系统上实时执行自动化和实时交互的跨浏览器测试. 使用Lambdatest可以测试公共网站和本地托管的应用程序.你只需要连接Lamb ...

  2. 201771010111李瑞红《面向对象的程序设计》第八周实验总结

    实验八接口的定义与使用 实验时间 2018-10 理论部分 6.1 接口:用interface声明,是抽象方法和常量值定义的集 合.从本质上讲,接口是一种特殊的抽象类. 在Java程序设计语言中,接口 ...

  3. 设计一个成功的微服务,堪称必备的9个基础知识

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 人体是不同系统的组合,其中大多数系统是独立的,并且作为一个整体协同 ...

  4. 您遵循过这些Jenkins优秀实践吗?

    一.时刻保持Jenkins的安全 在默认配置情况下,Jenkins是不执行任何安全检查的.也就是说,除一些简单基本的Jenkins配置.作业和构建,网站的访问者几乎可以在Jenkins的主数据库中执行 ...

  5. 五大自动化测试的 Python 框架

    来源:Python开发者 本文长度为3700字,建议阅读10分钟 本文为大家准备了五种Python类型的自动化测试框架,以供比较和讨论. 自2018年被评选为编程语言以来,Python在各大排行榜上一 ...

  6. Util应用程序框架公共操作类(八):Lambda表达式公共操作类(二)

    前面介绍了查询的基础扩展,下面准备给大家介绍一些有用的查询封装手法,比如对日期范围查询,数值范围查询的封装等,为了支持这些功能,需要增强公共操作类. Lambda表达式公共操作类,我在前面已经简单介绍 ...

  7. 一步一步学Linq to sql(一):预备知识

    从今天起将推出新手讲堂,首先从linq开始详细讲解.一步一步学Linq to sql(一):预备知识 什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集 ...

  8. java枚举变量带括号_Java~如何使用Enum(枚举)和Lambda表达式

    文章目录 Enum的使用 switch中使用 常见方法 values() 以数组形式返回枚举类型的所有成员 ordinal() 获取枚举成员的索引位置 valueOf() 将普通字符串转换为枚举实例 ...

  9. parallel循环java_Java 8 lambda stream forEach parallel 等循环与Java 7 for each 循环耗时测试...

    Java 8 里面的stream 有串行流和并行流之分. 说高级的stream就是那个并行流.下面是那个并行流的简单实现.只要是继承Collection类的都可以这么用. list.stream(). ...

  10. java 的lambda表达式

    2019独角兽企业重金招聘Python工程师标准>>> 为什么使用 Lambda 表达式 lLambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码( ...

最新文章

  1. 2020 AI前沿交流大会 | 聚焦CV/NLP最新学术及工业界实践
  2. 深度学习经典数据集汇总
  3. 数据结构——队列链表实现
  4. easyui框架前后端交互_Easyui Datagrid增删改及后台交互(java)
  5. Python开课复习10
  6. vim trickies
  7. mongodb记录存储管理
  8. 二叉树的遍历 《算法导论》10.4-1~10.4-3 10.4-5
  9. qt制作2048小游戏
  10. FeedDemon获共享软件年度大奖
  11. event是什么?事件对象
  12. Android Studio编译报Default interface methods are only supported starting with Android N (--min-api 24)
  13. Linux MySQL8.0.11版本升级到MySQL8.0.23【数据库备份】
  14. 美国十大汽车销售网站
  15. php vox转码,Audio Track Convert Tool(音轨转码工具)
  16. 云服务器一直显示关机中,云服务器一直处于关机状态
  17. 【算法分析】实验 1. 基于贪心的会议安排问题
  18. HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
  19. Caffeine Cache和Ehcache3.x 进程缓存性能比较
  20. MiniGui打开GridView控件

热门文章

  1. GIS行业地图绘制的基本要求
  2. SQL2008 视频教程 SQL Server 2008高级视频教程
  3. GitHub加速访问、克隆和下载
  4. day23_1-re模块之转义字符、分组、方法
  5. android依赖本地工程排除,Android Gradle依赖项排除(Android Gradle dependency exclude)
  6. C语言气温连续上升的天数,广西多地连阴雨天数破纪录 - 广西首页 -中国天气网...
  7. NOTE_网络存储-2 by 张冬
  8. vlookup使用步骤_VLOOKUP函数的使用方法详解
  9. Android流量统计分析
  10. 海尔计算机无法装win7系统,海尔Haier电脑预装win8换win7系统BIOS设置及安装教程