你好.这是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表达式为语法糖,但是形式上更加简洁优雅.
(以上为原创)
温馨提示:内容为网友见解,仅供参考