namespace MyLambda
{
public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, in T10, in T11, in T12, in T13, in T14, in T15, in T16, in T17>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16, T17 arg17);
public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, in T10, in T11, in T12, in T13, in T14, in T15, in T16, in T17, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16, T17 arg17);
public delegate void NoReturnNoParaOut(); public class LambdaShow
{ public static void Show()
{
{
NoReturnWithPara method = new NoReturnWithPara(ShowStudent);//2 实例化委托 要求传递的方法必须和委托约束的签名一致
method.Invoke(, "Emrys");//3 调用委托
} {
NoReturnWithPara method = ShowStudent;//实例化委托的时候,可以去掉 new NoReturnWithPara
method.Invoke(, "Emrys");
} {
NoReturnWithPara method = delegate(int id, string name)//匿名方法
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
};
method.Invoke(, "Emrys");
} {
NoReturnWithPara method = (int id, string name) =>//lambda表达式 本质是一个匿名函数,是一个函数
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
};
method.Invoke(, "Emrys");
} {
NoReturnWithPara method = (id, name) =>//实例化委托 要求传递的方法必须和委托约束的签名一致 编译器会自动推断
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
};
method.Invoke(, "Emrys");
} {
//如果方法体只有一行,可以去掉大括号
NoReturnWithPara method = (id, name) => Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
method.Invoke(, "Emrys");
} {
NoReturnNoPara method = () => { };
NoReturnWithOnePara method1 = i => Console.WriteLine(i);
method1.Invoke(); }
{
WithReturnWithPara method = (m, n) => { return DateTime.Now.Second; };
Console.WriteLine("当前时间的second={0}", method.Invoke(, ));
}
{
WithReturnWithPara method = (m, n) => DateTime.Now.Second;
Console.WriteLine("当前时间的second={0}", method.Invoke(, ));
} {
//0 到16个参数 无返回值 的泛型委托
Action method = () => { };
Action<int> act1 = i => Console.WriteLine(i);
Action<string> act2 = i => Console.WriteLine(i);
Action<string, long, DateTime, string, int, decimal, byte, LambdaShow, long, DateTime, string, int, decimal, byte, LambdaShow, Program> act1111 = null;
Action<string, string, long, DateTime, string, int, decimal, byte, LambdaShow, long, DateTime, string, int, decimal, byte, LambdaShow, Program> act11111 = null;
}
{
//0 到16个参数 带返回值 的泛型委托
Func<string> func1 = () => "‭‭‭‭‭‭‭‭Menzer";
Console.WriteLine(func1.Invoke());
Func<string, string, long, DateTime, string, int, decimal, byte, LambdaShow, long, DateTime, string, int, decimal, byte, LambdaShow, Program> func1111 = null;
Func<string, string, string, long, DateTime, string, int, decimal, byte, LambdaShow, long, DateTime, string, int, decimal, byte, LambdaShow, Program> func11112 = null;
} } public delegate void NoReturnNoPara();//1 声明委托
public delegate void NoReturnWithOnePara(int id);
public delegate void NoReturnWithOnePara1(string id);
public delegate void NoReturnWithOnePara2(long id);
public delegate void NoReturnWithOnePara3(DateTime id);
public delegate void NoReturnWithPara(int id, string name);
public delegate int WithReturnNoPara();
public delegate int WithReturnWithPara(int x, int y); private static void ShowStudent(int id, string name)
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
}
private static void ShowStudent1(int id, string name)
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
}
private static void ShowStudent2(int id, string name)
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
}
private static void ShowStudent3(int id, string name)
{
Console.WriteLine("id={0} name={1}正在高级班学习....", id, name);
}
}
}

记关于 Lambda 表达式的基础写法的更多相关文章

  1. 深入浅出java 8 lambda表达式--零基础一分钟入门

    lambda从使用上来说,第一感觉直白的理解就是,少了很多不必要的匿名回调类的写法,比如: public static void main(String[] args) { PlatformQuery ...

  2. Lambda 表达式的基础语法

    1.基础语法 java8引入新的操作符"->"箭头操作符,箭头操作符将Lambda表达式分成两部分 左侧:Lambda 表达式的参数列表,对应抽象方法的参数列表 右侧:需要执 ...

  3. 函数:lambda表达式 - 零基础入门学习Python021

    函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...

  4. Java基础学习总结(69)——匿名内部类与Lambda表达式

    前言 Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedy ...

  5. Lambda表达式和Java集合框架

    本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...

  6. java8新特性之——lambda表达式的使用

    lambda表达式简介 个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码.Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解 ...

  7. Java8的Lambda表达式,你会不?

    目录 理解Lambda 基础语法 函数式接口 常用的函数式接口 消费型接口 供给型接口 断言型接口 函数型接口 方法引用 数组引用 构造器引用 总结 参考阅读 理解Lambda Lambda表达式可以 ...

  8. Lambda表达式你会用吗?

    函数式编程 在正式学习Lambda之前,我们先来了解一下什么是函数式编程 我们先看看什么是函数.函数是一种最基本的任务,一个大型程序就是一个顶层函数调用若干底层函数,这些被调用的函数又可以调用其他函数 ...

  9. 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧,建议收藏!!!

      最近刚好有空给大家整理下JDK8的特性,这个在实际开发中的作用也是越来越重了,本文重点讲解下Lambda表达式 Lambda表达式   Lambda 表达式,也可称为闭包,它是推动 Java 8 ...

随机推荐

  1. JavaScript之再谈回调与闭包

    前些阵子写了几篇关于回调和闭包的博文,感觉自己都是似懂非懂,最近在项目中又碰到了类似的情况,故在此咱们来重弹js中的回调与闭包. 先说说回调: 百度百科: 回调函数就是一个通过函数指针调用的函数.如果 ...

  2. Mac+PhpStorm+XAMPP+Xdebug

    Mac+PhpStorm+XAMPP+Xdebug 环境的配置   在上一篇 PHP 系列的文章<PHP 集成开发环境比较>中,我根据自己的亲身体验,非常简略的介绍和对比了几款常用的集成开 ...

  3. 用css2属性clip实现网页进度条

    前言 看了网上一些关于网页进度条样式的资料,有很多方式实现,针对其展现形式,有用图片的,有用css2属性clip,有用flash的,本人就学会了一种,下面就简单来介绍一下. css2的属性clip 如 ...

  4. tinyxml 查找element

    下面这段代码是网上找来的,很是经典 bool GetNodePointerByName(TiXmlElement* pRootEle, const char* strNodeName,TiXmlEle ...

  5. Node.js与MongoDB的基本连接示例

    Node.js与MongoDB的基本连接示例 前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务 ...

  6. Web API 2:Action的返回类型

    Web API 2:Action的返回类型 Web API控制器中的Action方法有如下几种返回类型: void HttpResponseMessage IHttpActionResult 其它类型 ...

  7. C# 获取磁盘容量

    原文:C# 获取磁盘容量 /// 获取指定驱动器的空间总大小(单位为B) /// </summary> /// <param name="str_HardDiskName& ...

  8. PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4

    原文:PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4 本文介绍如何在Windows下配置php扩展. 本文链接 http://blog.csdn. ...

  9. oracle获取字符串长度函数length()和hengthb()

    原文:oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算s ...

  10. SSI框架总结

    先来点文字性的描写叙述: MVC对于我们来说,已经不陌生了,它起源于20世纪80年代针对smalltalk语言的一种软件设计模式,如今已被广泛应用.近年来,随着java的盛行,MVC的低耦合性.高重用 ...