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. uva10827-Maximum sum on a torus(矩阵最大和的变形)

    题目;uva10827-Maximum sum on a torus(矩阵最大和的变形) 题目大意:就是uva108的变形,矩阵能够连通,就是能够从后面连到前面.这里把矩阵复制三遍,然后又一次生成一个 ...

  2. 无废话WCF入门教程四[WCF的配置文件]

    一.概述 配置也是WCF编程中的主要组成部分.在以往的.net应用程序中,我们会把DBConn和一些动态加载类及变量写在配置文件里.但WCF有所不同.他指定向客户端公开的服务,包括服务的地址.服务用于 ...

  3. 前端学习笔记(zepto或jquery)—— 布局技巧(一)

    html5中有一些标签我们很难改变其样式,例如input=file,select等.这个时候我们需要改变一下思路,将原有透明度置为0,借助于div或span等以控制样式的标签来代替. 效果图: < ...

  4. 使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示

    原文:使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示 首先来看一看实现的效果: PS:原始的程序中更新曲线数据时添加了过渡的效果,具体可 ...

  5. mysql_MYSQL远程登录权限设置

    Mysql默认关闭远程登录权限,如下操作允许用户在任意地点登录: 1. 进入mysql,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ...

  6. javascript系列之核心知识点(二)

    变量对象       变量对象是一个与执行上下文相关联的容器.它是一个和上下文密切结合的特殊对象,含有定义在上下文中的变量和函数声明.注意,函数表达式(和函数声明不同的)不包含在变量对象中. 变量对象 ...

  7. 【Unity 3D】学习笔记三十八:角色控制器

    角色控制器 在unity中,已经帮我们实现的上下左右跳等动作,并将他们封装成了角色控制器.角色控制器保存在unity标准资源包中,能够说是很的强大.能够模拟第一或者第三人称视角.不受刚体的限制,很适用 ...

  8. 蜗牛—Hibernate之初识配置

    下载Hibernate的jar包 把下面jar文件考到项目lib下 然后在myeclipse中打开database的view视图创建一个新的数据库连接 接下来,配置连接,须要导入ORACLE的jar包 ...

  9. asp.net [AjaxMethod]

    AjaxPro.2.dll cs 代码 using AjaxPro; Utility.RegisterTypeForAjax(typeof(BOMdr_KT)); [Ajax.AjaxMethod() ...

  10. 一步一步写算法(之n!中末尾零的个数统计)

    原文:一步一步写算法(之n!中末尾零的个数统计) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在很多面试的题目中,求n!结果中零的个数也是 ...