可能重复:
C# Lambda ( => )
例如
Messenger.Default.Register<AboutToCloseMessage>(this, (msg) =>
{
if (msg.TheContainer == this.MyContainer) // only care if my container.
{
// decide whether or not we should cancel the Close
if (!(this.MyContainer.CanIClose))
{
msg.Execute(true); // indicate Cancel status via msg callback.
}
}
});
答案 0 :(得分:2)
=>运算符用于Lambda表达式。
http://msdn.microsoft.com/en-us/library/bb397687.aspx
它允许您“动态”定义匿名函数,并可用于创建委托或表达式树类型。
答案 1 :(得分:1)
它是一个lambda,它允许您轻松创建一个函数。
在你的例子中你也可以写:Messenger.Default.Register<AboutToCloseMessage>(this, delegate(Message msg)
{
if (msg.TheContainer == this.MyContainer) // only care if my container.
{
// decide whether or not we should cancel the Close
if (!(this.MyContainer.CanIClose))
{
msg.Execute(true); // indicate Cancel status via msg callback.
}
}
});
甚至
Messenger.Default.Register<AboutToCloseMessage>(this, foobar);
// somewhere after //
private void foobar(Message msg)
{
if (msg.TheContainer == this.MyContainer) // only care if my container.
{
// decide whether or not we should cancel the Close
if (!(this.MyContainer.CanIClose))
{
msg.Execute(true); // indicate Cancel status via msg callback.
}
}
}
答案 2 :(得分:0)
这是一个lambda表达式(http://msdn.microsoft.com/en-us/library/bb397687.aspx)。
答案 3 :(得分:0)
它的lamda表达式(Function Argument)=&gt; {功能体}
可以指定参数的类型,但编译器通常只会解释它。
答案 4 :(得分:0)
这就是你在C#中定义lambda的方法。 msg
是参数,传递给lambda方法,其余的是方法的主体。
相当于:
Messenger.Default.Register<AboutToCloseMessage>(this, SomeMethod);
void SomeMethod(SomeType msg)
{
if (msg.TheContainer == this.MyContainer) // only care if my container.
{
// decide whether or not we should cancel the Close
if (!(this.MyContainer.CanIClose))
{
msg.Execute(true); // indicate Cancel status via msg callback.
}
}
}