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表达式的推导的更多相关文章

  1. C++实现委托机制(三)——lambda表达式封装

    C++.引言:              其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...

  2. C#多线程+委托+匿名方法+Lambda表达式

    线程 下面是百度写的: 定义英文:Thread每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.进程也可能是整个程序或者是部分程序的动态执行.线程是一组指令的集合,或者是程序的特殊段,它 ...

  3. 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】

    1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...

  4. (28)C#委托,匿名函数,lambda表达式,事件

    一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...

  5. 委托、回调 Lambda表达式书写方式

  6. ASP.NET MVC学前篇之Lambda表达式、依赖倒置

    ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx=>xx>yy);)类似于这样的函数调用语句,里面 ...

  7. 委托的lambda表达式

    委托可以用 Lambda 表达式的方法来表示,很多C#的代码都会大量使用 Lambda 表达式,正确理解它的用法还是很重要的. 基础规则: Lambda 运算符 “=>” 左边表示委托实例所需要 ...

  8. c#委托中的匿名方法和lambda表达式

    一.一般委托方式 Func<int, int, int> AddMethodHander; public unName() { AddMethodHander += AddMethod; ...

  9. 委托,事件,lambda表达式

    开篇说明三个点: 委托是一种类型 事件是委托的实例 lambda表达式是一个方法(匿名方法) [未完待续]

随机推荐

  1. window上杀死node进程

    1.查询端口占用的进程ID点击"开始"-->"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:netst ...

  2. vue常用属性

    关键词:filters  | 自定义过滤器 (首字母大写) <p>{{ msg | capitalize }}</p> filters: { capitalize: funct ...

  3. ggplot2 aes函数map到data笔记

    .all_aesthetics <- c("adj", "alpha", "angle", "bg", " ...

  4. pycharm 中 django 导入静态文件不提示补全

    File—>setting----->Languages & Frameworks ------> Python Template  Languages ------> ...

  5. python Ajax

    Ajax一.准备知识JSON1.什么是json JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSO ...

  6. SSIS - 4.使用表达式任务和脚本任务实现更改变量和输出变量值

    一.脚本任务 脚本任务是SSIS包中功能很强大的组件,尤其当内置的任务无法实现我们需要的功能的时候,我们都可以使用脚本任务来实现.脚本任务使用VSTA(Microsoft Visual Studio ...

  7. MySQL表添加自增列

    mysql> create table zc_test2(id int); Query OK, rows affected (1.37 sec) mysql),(),(),(),(); Quer ...

  8. Axure环境安装,组件引入,使用示例

    资源下载: Axure的中文官方下载地址:https://www.axure.com.cn/3510/ Axure汉化包:https://www.axure.com.cn/2616/ Axure元件库 ...

  9. Linux安装Gradle

    Linux安装Gradle   Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具.在github上,gradle项目很多,有的是gra ...

  10. VsCode 使用专用编程字体FiraCode

    FiraCode资料:https://github.com/tonsky/FiraCode PHP代码效果如下: VsCode 配置中添加: "editor.fontFamily" ...