C# delegates example
public delegate int NewDelegate(string input);
static void Main(string[] args)
{
// Delegate keyword
var myDelegate = new NewDelegate(new Program().ParseInput);
// Anonymous delegate
var myDelegate2 = new NewDelegate(delegate(string input)
{
return Int32.Parse(input);
});
// Output
Console.WriteLine("Delegate keyword - {0}", myDelegate("10"));
Console.WriteLine("Anonymous delegate keyword - {0}", myDelegate2("10"));
}
private int ParseInput(string input)
{
return Int32.Parse(input);
}
// Set second delegate to the first delegate's invocation list
myDelegate += myDelegate2;
Console.WriteLine("Delegate invocation list - {0}", myDelegate.GetInvocationList());
Func<string, int> myFunc = i => Int32.Parse(i);
Action<int> myAction = i => Console.WriteLine(i);
Predicate<int> myPredicate = i => i == 0;