public class Thing { public delegate void Handler (); static void Foo () { } public static int Main () { Method (delegate { }, "Hello", "How", "Are", "You"); // compiler explodes Method (delegate { }); // compiler explodes Method (null, null); // ok Method (null); // ok Method (Foo, "Hi"); // ok return 0; } public static void Method (Handler handler, params string [] args) { } }