What does "=>" mean in C #?
Possible duplicate:
C # Lambda (=>)
for instance
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.
}
}
});
This is lambda, it makes it easy to create a function.
in your example, you can also write:
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.
}
}
});
or even
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.
}
}
}
Operator
=>used for lambda expressions.
http://msdn.microsoft.com/en-us/library/bb397687.aspx
It allows you to define an anonymous function on the fly and can be used to create delegates or types of expressions tree.
lambda #. msg - , , - .
:
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.
}
}
}