public delegate void MyDelegate(string msg);
public delegate void MyComplexDelegate(string msg, int nombre);
public static void Main()
ClassA.MethodA("Hello World en direct");
MyDelegate del = ClassA.MethodA;
del = (string msg) => Console.WriteLine("Called lambda expression: " + msg);
MyComplexDelegate complex = (string msg, int nombre) => Console.WriteLine("Ceci est un exemple de delegate complexe. msg = " + msg + " / nombre = " + nombre);
complex("Message 1", 42);
public static void InvokeDelegate(MyDelegate del)
del("Hello World en delegate");
public static void MethodA(string message)
Console.WriteLine("Called ClassA.MethodA() with parameter: "+ message);
public static void MethodB(string message)
Console.WriteLine("Called ClassB.MethodB() with parameter: "+ message);