public abstract class EventBase
public class Event1 : EventBase
public class Event2 : EventBase
private static void Foo(EventBase eventBase)
private static void Bar(object param)
Console.WriteLine("object Bar");
public static void Bar(Event1 param)
Console.WriteLine("Event1 Bar");
public static void Bar(Event2 param)
Console.WriteLine("Event2 Bar");
public static void Main()