jwood803
10/24/2013 - 12:16 AM

C# delegates example

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;