2012-04-03 20 views
10

我有一類,它實現了大量B級 B級的情況下的封裝C.類通事件A

類的一個實例引發其需要是事件由A級處理。 A類不需要知道C類。 C類正在傳回基於性能的統計數據,A需要合併。

如何在B類中創建事件並將它們連接起來,以便A類可以訂閱B類事件並從C類接收事件?

+0

遺憾? A類*實現了大量的B類實例*?這是什麼意思?請提供一些代碼 – 2012-04-03 09:42:29

回答

21

事件不過是一對包裝委託字段的方法。您可以覆蓋附加的默認實現&刪除ClassB方法的值傳遞直在ClassC事件:

public class ClassB 
{ 
    private ClassC m_C = new ClassC(); 

    public event EventHandler MyEvent 
    { 
     add { m_C.MyEvent += value; } 
     remove { m_C.MyEvent -= value; } 
    } 
}