lambda表达式

使用Lambda表达式重构委托

大兔子大兔子 提交于 2020-03-24 06:29:24
1.事件 通常写法(C# 1.0) this.button.Click +=new EventHandler(button_Click); void button_Click(object sender, EventArgs e) { throw new NotImplementedException(); } 在C#2.0中使用匿名方法 this.button.Click +=delegate{ throw new NotImplementedException(); }; //或者 this.button.Click +=delegate(object obj, EventArgs args) throw new NotImplementedException(); }; 使用Lamba表达式 this.button.Click += (s, ev) => { throw new NotImplementedException(); }; 2.一般委托 Func<int,int,int> max=(a,b)=> { if (a > b) return a; return b; }; int rst=max(222,134); Console.Write(rst) 参考自 http://www.cnblogs.com/neozhu/archive/2010/07/16

.net 3.5 Lambda表达式

六眼飞鱼酱① 提交于 2020-03-18 05:58:17
Lambda表达式 转自 http://www.cnblogs.com/kingmoon/archive/2011/05/03/2035696.html "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x => x * x读作"x goes to x times x"。可以将此表达式分配给委托类型,如下所示: delegate int del(int i); del myDelegate = x = > x * x; int j = myDelegate (5); // j = 25 Lambda表达式Lambda表达式是由.NET 2.0演化而来的,也是LINQ的基础,熟练地掌握Lambda表达式能够快速地上手LINQ应用开发。 Lambda表达式在一定程度上就是匿名方法的另一种表现形式。为了方便对Lambda表达式的解释,首先需要创建一个People类,示例代码如下。 public class People { public

2020.03.10 Lambda表达式

最后都变了- 提交于 2020-03-10 22:16:12
import org.junit.Test;/** * ClassName: * Function: ADD FUNCTION * Reason: ADD REASON * * @author * @Date * @since Ver 1.1 */public class LambdaTest { @Test public void test1(){ Runnable r2=()-> System.out.println("今天是星期二"); r2.run(); }}-------------------------------------------------------------------- import java.util.Arrays;import java.util.function.Consumer;import java.util.function.Function;/** * ClassName: * Function: ADD FUNCTION * Reason: ADD REASON * * @author * @Date * @since Ver 1.1 */public class LambdaTest2 { public static void main(String[] args) { happyTime(500,(money)-> System

java8新特性

匆匆过客 提交于 2020-03-09 09:24:55
Home Introduction Java 8 简明教程 Java 8 数据流教程 Java 8 Nashorn 教程 Java 8 并发教程:线程和执行器 Java 8 并发教程:同步和锁 Java 8 并发教程:原子变量和 ConcurrentMap Java 8 API 示例:字符串、数值、算术和文件 在 Java 8 中避免 Null 检查 使用 Intellij IDEA 解决 Java 8 的数据流问题 在 Nashron 中使用 Backbone.js Published with GitBook Java 8 简明教程 Java 8 简明教程 原文: Java 8 Tutorial 译者: ImportNew.com - 黄小非 来源: Java 8简明教程 ‍ “Java并没有没落,人们很快就会发现这一点” 欢迎阅读我编写的 Java 8 介绍。本教程将带领你一步一步地认识这门语言的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解。看完这篇教程后,你还将对最新推出的 API 有一定的了解,例如:流控制,函数式接口,map扩展和新的时间日期API等等。 允许在接口中有默认方法实现 Java 8 允许我们使用default关键字,为接口声明添加非抽象的方法实现。这个特性又被称为 扩展方法

02_Java语音进阶||day07_等待与唤醒案例、线程池、Lambda表达式

走远了吗. 提交于 2020-03-05 21:55:28
第一章 等待唤醒机制 1.1 线程间通信 概念: 多个线程在处理同一个资源 (包子), 但是处理的动作(线程的任务)却不相同。 比如: 线程A用来生产包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么 线程A与线程B之间 就存在 线程通信问题 1.2 等待唤醒机制 等待与唤醒机制: 线程之间的通信 【重点】:有效的利用资源[包子] (生产一个包子,吃一个包子,再生产一个包子,再吃一个包子) 通信:对包子的状态进行判断 * ==没有==包子-->吃货线程唤醒包子铺线程-->吃货线程等待-->包子铺线程做包子-->做好包子-->修改包子的状态==有== * ==有==包子-->包子铺线程唤醒吃货线程-->包子铺线程等待-->吃货线程吃包子-->修改包子的状态==没有== * ==没有==包子-->吃货线程唤醒包子铺线程-->吃货线程等待-->包子铺线程做包子-->做好包子-->修改包子的状态==有== * ... 等待唤醒中的方法 void wait () 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。 void notify () 唤醒在此对象监视器上等待的 单个线程 。 注:会继续执行wait方法之后的代码 void notifyAll () 唤醒在此对象监视器上等待的

DK1.5-JDK11各个新特性

◇◆丶佛笑我妖孽 提交于 2020-02-28 19:48:32
摘要: 参考文献: https://blog.csdn.net/lsxf_xin/article/details/79712537 JDK各个版本的新特性 要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8部分特性。 JDK1.5新特性 1:自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。 自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。 自动拆箱,只需将该对象值赋给一个基本类型即可。 java——类的包装器 类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean 2:枚举 把集合里的对象元素一个一个提取出来。枚举类型使代码更具可读性,理解清晰,易于维护。枚举类型是强类型的,从而保证了系统安全性。而以类的静态字段实现的类似替代模型,不具有枚举的简单性和类型安全性。 简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。 复杂用法

Java8 Lambda表达式练习

為{幸葍}努か 提交于 2020-02-28 10:24:50
数据准备: List<String> list = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API"); public class User { //姓名 private String name; //年龄 private int age; //学号 private String number; public User() { } public User(String name, int age, String number) { this.name = name; this.age = age; this.number = number; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this

从Lambda表达式中检索属性名称

自闭症网瘾萝莉.ら 提交于 2020-02-28 09:35:16
通过lambda表达式传递时,是否有更好的方法来获取属性名称? 这是我目前拥有的。 例如。 GetSortingInfo<User>(u => u.UserId); 仅当属性为字符串时,才将其强制转换为memberexpression。 因为并非所有属性都是字符串,所以我不得不使用object,但是它将为这些返回unaryexpression。 public static RouteValueDictionary GetInfo<T>(this HtmlHelper html, Expression<Func<T, object>> action) where T : class { var expression = GetMemberInfo(action); string name = expression.Member.Name; return GetInfo(html, name); } private static MemberExpression GetMemberInfo(Expression method) { LambdaExpression lambda = method as LambdaExpression; if (lambda == null) throw new ArgumentNullException("method");

Reading 2010年12月16日

℡╲_俬逩灬. 提交于 2020-02-28 08:52:53
软件开发中的11个系统思维定律 推荐一些网站给大家 最近的一些面试感悟 设计模式学习(六):重构与模式,推荐书籍(完) “表驱动”那点事儿。。。Somethings About Table Driven Method CRM 2011 RC版本的安装 .Net令人纠结的Null 为啥C#的Lambda表达式不支持语句?(无答案,你来回答。) 面试题(2)预处理、const、static、sizeof 为啥C#的Lambda表达式不支持语句?(无答案,你来回答。) 来源: https://www.cnblogs.com/hwh_/archive/2010/12/16/1908565.html

Java学习-常用函数接口(三)

一曲冷凌霜 提交于 2020-02-28 04:19:30
常用的函数式接口_Predicate接口 import java . util . function . Predicate ; /* java.util.function.Predicate<T>接口 作用:对某种数据类型的数据进行判断,结果返回一个boolean值 Predicate接口中包含一个抽象方法: boolean test(T t):用来对指定数据类型数据进行判断的方法 结果: 符合条件,返回true 不符合条件,返回false */ public class Demo01Predicate { /* 定义一个方法 参数传递一个String类型的字符串 传递一个Predicate接口,泛型使用String 使用Predicate中的方法test对字符串进行判断,并把判断的结果返回 */ public static boolean checkString ( String s , Predicate < String > pre ) { return pre . test ( s ) ; } public static void main ( String [ ] args ) { //定义一个字符串 String s = "abcdef" ; //调用checkString方法对字符串进行校验,参数传递字符串和Lambda表达式 /*boolean b =