你好.这是lambda表达式.我曾经对此研究了一段时间.
简明来说,你首先应该理解匿名函数,事件和委托的各种演变和用法.委托是一个特殊的类,可以传递方法引用,而事件则相当于委托类型的属性.而对事件赋值其实就是对事件的注册和注销.
以上是我总结的基础知识.
下面是委托的演变.
使用委托则需要这样写
你有一个委托类型:
delegate void MessageHandle(object sender, DataType pam);有一个和这个委托同方法签名的方法:
private void SendMsg(object sender, DataType e)那么在你方法内部使用时候请注意.net Framework的几个版本演变:
2.0前 使用委托函数:
MessageHandle AcceptClient = new MessageHandle(SendMsg);2.0 为了简化SendMsg方法,使用匿名函数形式表达,这样就不用再另外写一个方法了:
MessageHandle AcceptClient = new MessageHandle(delegate(object sender, DataType pam) { });在之后,则采用lambda表达式,进行表示代理函数:
MessageHandle AcceptClient = new MessageHandle((sender,parm) => { });如此,我们叫lambda表达式为语法糖,但是形式上更加简洁优雅.
(以上为原创)