记关于 Lambda 表达式的基础写法
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 表达式的基础写法的更多相关文章
- 深入浅出java 8 lambda表达式--零基础一分钟入门
lambda从使用上来说,第一感觉直白的理解就是,少了很多不必要的匿名回调类的写法,比如: public static void main(String[] args) { PlatformQuery ...
- Lambda 表达式的基础语法
1.基础语法 java8引入新的操作符"->"箭头操作符,箭头操作符将Lambda表达式分成两部分 左侧:Lambda 表达式的参数列表,对应抽象方法的参数列表 右侧:需要执 ...
- 函数:lambda表达式 - 零基础入门学习Python021
函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...
- Java基础学习总结(69)——匿名内部类与Lambda表达式
前言 Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedy ...
- Lambda表达式和Java集合框架
本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...
- java8新特性之——lambda表达式的使用
lambda表达式简介 个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码.Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解 ...
- Java8的Lambda表达式,你会不?
目录 理解Lambda 基础语法 函数式接口 常用的函数式接口 消费型接口 供给型接口 断言型接口 函数型接口 方法引用 数组引用 构造器引用 总结 参考阅读 理解Lambda Lambda表达式可以 ...
- Lambda表达式你会用吗?
函数式编程 在正式学习Lambda之前,我们先来了解一下什么是函数式编程 我们先看看什么是函数.函数是一种最基本的任务,一个大型程序就是一个顶层函数调用若干底层函数,这些被调用的函数又可以调用其他函数 ...
- 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧,建议收藏!!!
最近刚好有空给大家整理下JDK8的特性,这个在实际开发中的作用也是越来越重了,本文重点讲解下Lambda表达式 Lambda表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 ...
随机推荐
- 【Swift初见】Swift词典
顾名思义.当我们仰望的时候,我们将基于索引查找我们需要找到的资源.在swift这同样适用,每个对象包括字典key和value.我们key为了找到当前这个key相应的value.与数组不同的是,字典项字 ...
- mysql_SQL_按照日统计微博数
主要备忘: DATE_FORMAT 函数 1:微博对比图(按日统计) SELECT DATE_FORMAT(tw.article_publish_time, '%Y-%m-%d'),count(pag ...
- winform 实现选择的城市名单
首先在地图上 #region 选择城市 /// <summary> /// 点击字母事件 /// </summary> /// <param name="sen ...
- ReactJS.NET
初探ReactJS.NET 开发 ReactJS通常也被称为"React",是一个刚刚在这场游戏中登场的新手.它由Facebook创建,并在2013年首次发布.Facebook认为 ...
- 在Windows系统中安装集成的PHP开发环境
原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XA ...
- 使用JFinal框架中Validator
Validator是JFinal框架中的校验组件,在Validator类中提供了我们经常使用的校验方法,而Validator本身实现了Interceptor接口,所以Validator也相当于一个拦截 ...
- 浏览器扩展系列————给MSTHML添加内置脚本对象【包括自定义事件】
原文:浏览器扩展系列----给MSTHML添加内置脚本对象[包括自定义事件] 使用场合: 在程序中使用WebBrowser或相关的控件如:axWebBrowser等.打开本地的html文件时,可以在h ...
- DFGUI-- 标签交换 Tabstrip
DFGUI没有更新,事实上,有些遗憾. 它着重于一个小 Examples/Containers/TabContainer.unity 那是,Tab采用. 功能 非常easy.就是切换Tag 内容改变. ...
- iOS7 UIKit动力学-碰撞特性UICollisionBehavior 上
我们谈到了重力上述财产UIGravityBehavior这个类. 非常明确的看法,当我们添加的属性的严重性后,,苹果UIview像掉进无底洞,地下坠,不断的加速.而如今呢,我们要在这个手机屏幕上,加入 ...
- adb概览及协议参考
原文:https://github.com/android/platform_system_core/blob/master/adb/OVERVIEW.TXT) Implementation note ...