博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lambda表达式匿名函数
阅读量:4353 次
发布时间:2019-06-07

本文共 1656 字,大约阅读时间需要 5 分钟。

匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。

可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。

C# 中委托的发展

在 C# 1.0 中,您通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。  C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。  C# 3.0 引入了 Lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。  这两个功能统称为“匿名函数”。  通常,针对 .NET Framework 版本 3.5 及更高版本的应用程序应使用 Lambda 表达式。  

下面的示例演示了从 C# 1.0 到 C# 3.0 委托创建过程的发展:

class Test{    delegate void TestDelegate(string s);    static void M(string s)    {        Console.WriteLine(s);    }    static void Main(string[] args)    {        // Original delegate syntax required         // initialization with a named method.        TestDelegate testDelA = new TestDelegate(M);        // C# 2.0: A delegate can be initialized with        // inline code, called an "anonymous method." This        // method takes a string as an input parameter.        TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };        // C# 3.0. A delegate can be initialized with        // a lambda expression. The lambda also takes a string        // as an input parameter (x). The type of x is inferred by the compiler.        TestDelegate testDelC = (x) => { Console.WriteLine(x); };        // Invoke the delegates.        testDelA("Hello. My name is M and I write lines.");        testDelB("That's nothing. I'm anonymous and ");        testDelC("I'm a famous author.");        // Keep console window open in debug mode.        Console.WriteLine("Press any key to exit.");        Console.ReadKey();    }}/* Output:    Hello. My name is M and I write lines.    That's nothing. I'm anonymous and    I'm a famous author.    Press any key to exit. */

 

转载于:https://www.cnblogs.com/rinack/p/5689739.html

你可能感兴趣的文章
request.getParameter()获取前台值为null
查看>>
路飞学城Python-Day186
查看>>
django Paginator分页插件
查看>>
关于APP自动化工程的一点小想法
查看>>
vc++post方式登录网站
查看>>
框架标签
查看>>
求职基础复习之冒泡排序c++版
查看>>
【TCP/IP】Ethernet II VS 802.3
查看>>
WebService学习总结(二)——WebService相关概念介绍
查看>>
webpack构建react应用三:使用webpack Loaders 模块加载器(一)
查看>>
Java JDBC
查看>>
走势终完美 --执子之手
查看>>
补全左括号
查看>>
javascript中关于坐标 大小 的描述
查看>>
8086CPU各寄存器的用途
查看>>
AngularJs中,如何在render完成之后,执行Js脚本
查看>>
Nginx 防盗链
查看>>
如何讓Android系統顯示CJK擴展區漢字
查看>>
Android 下拉选择绑定Value和Text值
查看>>
HTML+CSS小结
查看>>