I read this interesting line here, in an answer by Jon Skeet.
The interesting line is this, where he advocated using a delegate:
Log.Info(\"I did som
Creating an anonymous delegate to specified method.
Probably, in your case it will be a Func<string>
This is an example of a lambda expression you can learn more here.
This introduces a lambda function (anonymous delegate) with no parameters, it's equivalent to and basically short-hand for:
delegate void () { return action.GenerateDescription(); }
You can also add parameters, so:
(a, b) => a + b
This is roughly equivalent to:
delegate int (int a, int b) { return a + b; }
It's way to pass anonymous delegate without parameters as lambda expression.
Similar to this from .NET 2.0
Log.Info("I did something: {0}", delegate()
{
return action.GenerateDescription();
});
=>
this is lambda operator. When we don't have any input parameters we just use round brackets ()
before lambda operator.
syntax:
(input parameters) => expression