public static void Notify <T>(FruitDelegate <T> del) where T : Fruit, new() { T t = new T(); del.DynamicInvoke(t); }
public void Notify <T>(Action <T> del) where T : Fruit { FruitDelegate f = del; f(new Banana()); //should be legal, but del may be Action<Apple> }