Lambda表达式基础

1.委托的典型用法

  1.1定义一个委托:

public delegate int AddDelegate(int i, int j);

  1.2 定义一个MyClass类,放置一个满足 AddDelegate委托要求的方法

1 class MyClass
2 {
3     public int Add(int i , int j)
4     {
5         return i + j;
6     }
7 }

1.3定义一个委托变量

AddDelegate del = null;

 1.4实例化一个MyClass对象,并将其 Add方法引用传给委托变量del

MyClass obj = new MyClass();
del = obj.Add ;

 1.5通过委托变量调用MyClass对象的 Add()方法

int result = del(100, 200);
Console.WriteLine(result);//300

总结:定义委托,定义委托所需要的方法,调用

2.为了简化委托编程,C#首先引入了一种语法特性—— 匿名方法,之后,再自然地演化为了Lambda表达式。

  匿名方法的示例(AnonymousMethodToLambda )

    2.1定义委托

      

public delegate int AddDelegate(int i,int j );

    2.2使用匿名方法定义委托变量//匿名方法“没有名字”, 可以直接赋值给委托类 型的变量。

AddDelegate del = delegate(int i, int j)
{
    return i + j;
};

    2.3通过委托变量“间接”地调用方法

    

Console.WriteLine(del(100,200)); //300

总结:匿名方法其实是将方法定义与委托变量赋值两个步骤 合而为一,从而省去了专门定义符合委托要求的方法 这个步骤。(1.2和1.4)

3.更进一步,将匿名方法转换为Lambda表达式……

  3.1

AddDelegate del = (i, j) => i + j;

总结:Lambda表达式在功能上等价于匿名方法,可以看成是匿名方法的进一步简化

时间: 2024-11-06 03:35:55

Lambda表达式基础的相关文章

C# Lambda表达式 基础

什么是Lambda 表达式? "Lambda表达式"实际上是一个方法,只不过该方法是一个匿名方法(就是没有名字的方法(函数),就是说只有在定义的时候能调用,在其他地方就不能调用了),是一种高效的类似于函数式编程的表达式,  (@高效 : 只在一个地方用用完就不用了,没必要单独写一个方法) 所有Lambda表达式都使用Lambda运算符 =>; ,该运算符读作"goes to".该标记在 lambda 表达式中用来将左侧的输入变量与右侧的 lambda 体分离.

Lambda表达式基础篇

一.简介 一个Lambda Expression(译为Lambda式) 就是一个包含若干表达式和语句的匿名函数.可以被用作创建委托对象或表达式树类型.Lambda 表达式对于编写 LINQ 查询表达式特别有用. 所有的Lambda式都使用操作符"=>",表示"goes to (转变为)".操作符左边部分是输入参数表,右边部分是表达式或语句块.接下来就看一下它的作用及用法. 二.何时用? 在Framework 2.0 以前,声明委托的唯一方法是通过方法命名,从F

Java8之Lambda表达式基础

Java 8中,将会提供对lambda的支持,函数式编程FP(Functional Programming)将会得到很好地支持,而函数式编程的一个重要特点就是适合并行运算. λ:希腊字母表中排序第十一位的字母,英语名称为Lambda,读音:兰亩达. 语法如下: (parameters) -> expression (parameters) -> statement (parameters) -> {statements;} 例子如下: () -> Math.PI * 2.0 (in

Lambda表达式

import org.junit.Test; import java.util.Comparator; import java.util.function.Consumer; /** * 一.Lambda 表达式基础语法:Java8中引入一个新的操作符"->"该操作符称为箭头操作符或Lambda操作符 * 箭头操作符将Lambda表达式拆分为两部分: * 左侧: Lambda表达式的参数列表 * 右侧: Lambda表达式中所需要执行的功能,即Lambda体 * * 语法格式一:

Lambda表达式--Java8的新功能案例详解(1)

1.lambda表达式--背景知识以及相关评价: lambda表达式允许你通过表达式来代替功能接口. 函数编程在C#.Python.JavaScript中都得到充分体现.而Java直到最新的Java 8才开始正式支持函数编程,最明显的改进就是对Lamba表达式的支持.正如C#之父Anders Hejlsberg在那篇文章 编程语言大趋势 中所讲,未来的编程语言将逐渐融合各自的特性,而不存在单纯的声明式语言(如之前的Java)或者单纯的函数编程语言.将来声明式编程语言借鉴函数编程思想,函数编程语言

java8新特性——Lambda表达式

上文中简单介绍了一下java8得一些新特性,与优点,也是为本次学习java8新特性制定一个学习的方向,后面几篇会根据上文中得新特性一一展开学习.本文就从java8新特性中比较重要的Lambda表达式开始学学习. 一.为什么要使用Lambda表达式 Lambda是一个匿名函数,我们可以baLambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁,更灵活的代码.作为一种更紧凑得代码风格,使得java得语言表达能力得到提升.Lambda表达式需要函数式接口的支持,接口中

好程序员分享java8新特性之Lambda表达式

?.Lambda表达式简介 什么是Lambda? Lambda表达式是Java 8推出的?个新特性.从本质上讲,Lambda表达式是?个匿名函数. 为什么要使?Lambda? 使?Lambda表达式可以对?个接?进??常简洁的实现. 之前我们在给?个接?引?赋值的时候,可以使?接?实现类,或者匿名内部类.但是有了 Lambda表达式,我们可以更加?便的实现这个需求. interface Comparator<T>?{ int compare(T o1, T o2); } class Progr

一课掌握Lambda表达式语法及作用简单入门1??

通过三个方面讲解Lambda表达式 1  什么是Lambda表达式 2  Lambda表达式基础知识 3  Lambda表达式高级扩展 分为三个层次去介绍一下Lambda表达式 重构结束后,我们针对性能问题进行讲解, 1 什么是Lambda表达式 2 Model Code As Data 3 功能接口设计及优化 4 为什么要使用Lambda表达式 Lambda表达式,也可以成为箭头函数,匿名函数,闭包 Lambda表达式体现的是轻量级函数方式编程思想 JDK8新特性 -> 左边操作参数,右侧是操

30天C#基础巩固----Lambda表达式

     这几天有点不在状态,每一次自己很想认真的学习,写点东西的时候都会被各种小事情耽误,执行力太差.所以自己反思了下最近的学习情况,对于基础的知识,可以从书中和视频中学习到,自己还是需要注意下关于自己以前做的项目中的一些知识点,那些才是HR提问的关键所在.今天都6.4号了,时间过的真是快呀,学校7.18左右放假,自己打算去西安看看,能不能找到一个实习工作,不行的话只能等到大四的第一学期去走校招.可以我们大四的第一学期还有很多课,真不知道老师是如何想的.所以在这还剩不到快2个月的时间里,把自己