private List<EventHandler> _ClickA;
public event ClickA { add { _ClickA.Add(value); } remove { _ClickA.Remove(value); } }

private EventHandler _ClickB;
public event ClickB { add { _ClickB = Delegate.Combine(_ClickB, value); } remove { 略

ClickAのようにするのがイベントの概念としては本来の形。
でも通常,addやremoveを省略して普通にイベントを宣言するとコンパイラはClickBのようなコードを生成する。
つまり「どうせデリゲートなんてほとんどイベントにしか使わないでしょ?」ってことでコンテナをくっつけてる。