委托初级篇——lambda表达式的推导
public delegate void ConsoleWriteStr(string name,DateTime now);
public delegate int DelegateAdd(int x, int y);
//第一步 使用匿名函数
ConsoleWriteStr cws1= new ConsoleWriteStr(
delegate(string name, DateTime now){
Console.WriteLine("我叫{0},我喜欢学习{1}", name, now);
}
);
//第二步将delegate换成=> , =>的左边是参数列表,右边是函数体
ConsoleWriteStr cws2 = (string name, DateTime now) => { Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); };
//第三步去掉操作类型,原因是委托要求与方法签名一致
ConsoleWriteStr cws3 = ( name, now) => { Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); };
//第三步去掉方法体的大括号,如果方法体只有一行,可以将大括号去掉
ConsoleWriteStr cws4 = (name, now) => Console.WriteLine("我叫{0},我喜欢学习{1}", name, now);
DelegateAdd func = (x, y) => { return x + y; };
DelegateAdd func1 = (x, y) => x + y;
//系统自带的委托Action,该委托不带返回值
Action ac1 = () => { }; //无参数无返回值
Action<string> ac2 = x =>{ }; //泛型委托 一个参数可以去掉小括号
Action<string> ac3 = x => { }; //泛型委托
Action<string,int,DateTime,Action> ac4 = (x, y, z, a) => { }; //泛型委托
//系统自带的委托Func,该委托带有返回值,最多16个参数,最后一个参数为返回值
Func<string> fun1 = () => " ";
Func<DateTime> fun2 = () => DateTime.Now;
Func<string, double,long, int> fun3 = (s,l, d) => { return 1+l; };
委托初级篇——lambda表达式的推导的更多相关文章
- C++实现委托机制(三)——lambda表达式封装
C++.引言: 其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...
- C#多线程+委托+匿名方法+Lambda表达式
线程 下面是百度写的: 定义英文:Thread每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.进程也可能是整个程序或者是部分程序的动态执行.线程是一组指令的集合,或者是程序的特殊段,它 ...
- 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】
1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...
- (28)C#委托,匿名函数,lambda表达式,事件
一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...
- 委托、回调 Lambda表达式书写方式
- ASP.NET MVC学前篇之Lambda表达式、依赖倒置
ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx=>xx>yy);)类似于这样的函数调用语句,里面 ...
- 委托的lambda表达式
委托可以用 Lambda 表达式的方法来表示,很多C#的代码都会大量使用 Lambda 表达式,正确理解它的用法还是很重要的. 基础规则: Lambda 运算符 “=>” 左边表示委托实例所需要 ...
- c#委托中的匿名方法和lambda表达式
一.一般委托方式 Func<int, int, int> AddMethodHander; public unName() { AddMethodHander += AddMethod; ...
- 委托,事件,lambda表达式
开篇说明三个点: 委托是一种类型 事件是委托的实例 lambda表达式是一个方法(匿名方法) [未完待续]
随机推荐
- SpringMVC+Mybatis+MySQL8遇到的问题
搭建SpringMVC+Mybatis+MySQL8过程中遇到的坑. 1.数据库驱动要使用新版本,我的和mysql保持一致. 查看mysql版本:MySQL\bin>mysql -V 配置对应版 ...
- node06
1.数据库: server端:数据存在 client端:管理工具,node mysql内有两个单位: 库:类似文件夹,容纳表 表:存储数据 行:一条数据 列(字段,域):一个数据项 主键:数据的唯一标 ...
- Java语法细节 - 内存和枚举
目录 Java申请DirectBuffer ByteBuffer的position,limit,capacity,flip操作之间的关系 枚举实现单例模式 Java申请DirectBuffer /*- ...
- Hadoop-HA机制工作原理
一.Hadoop 系统架构 1.1 Hadoop1.x和Hadoop2.x 架构 在介绍HA之前,我们先来看下Hadoop的系统架构,这对于理解HA是至关重要的.Hadoop 1.x之前,其官方架构如 ...
- oracle的知识点总结
体系结构:数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制.体系结构包括:实例(instence),数据库文件(database),用户进程(user proces ...
- 关于如何在Visual Studio上仿真调试安卓的U3D应用
正巧最近需要开发一个安卓手机上的Unity3D游戏功能,想着既然要开发么,当然需要调试.本来的话一些基础功能是不需要使用仿真模拟器,直接在U3D的开发编辑器上就能调试,不过有一些安卓上才能执行,比如 ...
- IDEA环境下SSM整合------注解开发
根据前一篇文章的步骤,目前项目进度应该是:核心过滤器配置完成.DispatcherServlet和ContextLoader配置完成.数据库dataSource配置完成.视图解析器配置完成.Mappe ...
- iOS浏览器 new Date() 返回 NaN
问题 项目中某个地方用到了倒计时,因此打算通过 new Date() 函数实现.但在 iPhone 真机测试的时候,显示的结果不符合预期.通过调试发现 iOS 中 new Date('2017-01- ...
- Java 2018 面试
1.Java的引用有什么作用?传递的是什么? Java的引用可以用来操作对象,传递的是对象的地址 2.引用分为几种?他们的区别是什么?弱引用用在什么地方? 分四种:强引用 . 软引用 . 弱引用 . ...
- PHP文件域上传
PHP中使用文件域上传文件,需要几个步骤,首先先判断有无文件域,然后判断是否选择了文件,最后判断文件是否上传成功. 需要注意的是 表单中有文件域,必须将method设置为post, enctype设置 ...