博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 匿名函数
阅读量:6910 次
发布时间:2019-06-27

本文共 1606 字,大约阅读时间需要 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. */

 

转载地址:http://oagdl.baihongyu.com/

你可能感兴趣的文章
怎样学习使用libiconv库
查看>>
【Little Demo】左右按钮tab选项卡双切换
查看>>
linux下c程序调用reboot函数实现直接重启【转】
查看>>
Visualbox中linux的网络配置
查看>>
谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法
查看>>
EhCache 分布式缓存/缓存集群
查看>>
偶遇with ties
查看>>
NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息...
查看>>
手机网页Html代码实现(解决显示页面很小的问题)
查看>>
指针与储物箱的关系
查看>>
sqlserver 的事务和c#的事务
查看>>
kernelchina.org内核研究
查看>>
模拟Asp.Net Forums实现可以换皮肤的控件 (转载)
查看>>
python使用(一)
查看>>
认真分析mmap:是什么 为什么 怎么用【转】
查看>>
ios 上拉载入下拉刷新Dome
查看>>
Objective-C:NSMutableString类的常见操作
查看>>
用javascript操作xml
查看>>
突破Windows系统默认用户句柄与GDI句柄限制
查看>>
SQLServer 2016安装时的错误:Polybase要求安装Oracle JRE 7更新51或更高版本
查看>>