先看一段代码吧

class Student{
delegate void Say(string content);
public void Show()
{
//Lambda的前世今生
//总结:Lambda就是委托的参数
{
//匿名委托
Say say = new Say(delegate(string content)
{
Console.WriteLine("xiao ming say hello:"+content);
});
say.Invoke("xiaoming");
}
{
//取消new Say,不用单独写实例化代码
Say say = delegate(string content)
{
Console.WriteLine("xiao ming say hello:" + content);
};
say.Invoke("xiaoming");
}
{
//取消delegate关键字,并增加 =>
Say say = (string content)=>
{
Console.WriteLine("xiao ming say hello:" + content);
};
say.Invoke("xiaoming");
}
{
//取消参数的类型,编译器自动推断,同时一个参数可以取消括号
Say say = content =>
{
Console.WriteLine("xiao ming say hello:" + content);
};
say.Invoke("xiaoming");
}
{
//如果只有一行代码,还可以取消大括号,写成一行
Say say = content =>Console.WriteLine("xiao ming say hello:" + content);
say.Invoke("xiaoming");
}
}
}

通过上面我们可以看到委托的演变过程,到最后就是我们熟悉的Lambda表达式,Lambda表达式是.net framwork 3.0推出的。

1.委托是一种类型。

2.Lambda表达式是委托的参数。

Lambda的前世今生的更多相关文章

  1. C#中的Lambda总结

    Lambda的前世今生 早在C# 1.0 时,C#中就引入了委托(delegate)类型的概念.通过使用这个类型,我们可以将函数作为参数进行传递.在某种意义上,委托可理解为一种托管的强类型的函数指针. ...

  2. Java 8——Lambda表达式

    本篇文章不介绍Lambda的前世今生,这里只对Lambda表达的应用做详细了解.以及与内部类的差异点. Lambda表达式 Lambda表达式是Java SE 8版本中引入的新的语法糖.将功能看做方法 ...

  3. Linq快速入门——Lambda表达式的前世今生

    Linq快速入门——Lambda表达式的前世今生   Lambda表达式其实并不陌生,他的前生就是匿名函数,所以要谈Lambda表达式,就不得不谈匿名函数,要谈匿名函数,那又要不得不谈委托. 何为委托 ...

  4. Lambda表达式的前世今生

    Lambda 表达式 早在 C# 1.0 时,C#中就引入了委托(delegate)类型的概念.通过使用这个类型,我们可以将函数作为参数进行传递.在某种意义上,委托可理解为一种托管的强类型的函数指针. ...

  5. Lambda前世今生

    1.学习资料 匿名函数 C#编程指南http://msdn.microsoft.com/zh-cn/library/bb882516.aspx Lambda表达式 C#编程指南http://msdn. ...

  6. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  7. 主成分分析PCA的前世今生

    这篇博客会以攻略形式介绍PCA在前世今生. 其实,主成分分析知识一种分析算法,他的前生:应用场景:后世:输出结果的去向,在网上的博客都没有详细的提示.这里,我将从应用场景开始,介绍到得出PCA结果后, ...

  8. Python之路【第一篇】:Python前世今生

    Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  9. 你好,C++(1)C++是什么?C++的“前世今生”

    The world is built on C++. ——Herb Sutter the chairman of the ISO C++ standards committee and chief n ...

随机推荐

  1. ASP.NET Core ResponseCaching:基于 VaryByHeader 定制缓存 Key

    ASP.NET Core ResponseCaching 提供了缓存http响应内容的能力,通过它可以在本地内存中直接缓存http响应内容,这是速度最快的服务端缓存,省却了网络传输与生成响应内容的开销 ...

  2. SVN和Git对比梳理

    在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...

  3. Docker数据卷

    1.volume操作命名:docker volume Usage:    docker volume COMMAND Manage Docker volumes Options:       --he ...

  4. windows 2008R2部署网站后出现 ‘PageHandlerFactory-Integrated’ 的解决办法

    原因:运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了. 解决方法:1.在cmd中切换到4.0所在的目录,命令如下:cd C ...

  5. MVC中code first方式开发,数据库的生成与更新

    在使用EF的实际编程中我们经常遇到这样的问题:发现实体结构需要新增加一个字段,或者减少一个字段,急需把实体结构修改,并让数据库更新这种修改.在用Model First或者Database First的 ...

  6. 各操作系统安装redis

    mac系统安装redis 注:Mac操作亲测可用,其他系统的安装均从菜鸟教程转载而来,未测试是否可用 一.下载 打开官网:https://redis.io/ Download---Stable---D ...

  7. 使用COE脚本绑定SQL Profile

    日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...

  8. javaScript函数立即执行《1》

    javaScript函数立即执行<1> 函数立即执行,常见两种写法: >>> (function(){ })() >>> (function(){ }( ...

  9. Git换行符是如何精确控制的

    Git换行符是如何精确控制的 Checkout Windows-style, commit Unix-style Git will convert LF to CRLF when checking o ...

  10. manjaro使用国内软件源

    虽然manjaro是基于arch修改的,但毕竟还是有些改动,如果可以用manjaro仓库里的,尽量不要用arch的源.如果嫌官方的软件源慢,可以直接一条命令修改成国内的软件源 sudo pacman- ...