0
假設我有一個類A,它從不同的類訂閱了n個不同的事件(說B類的事件1和C類的事件2)。在處理A類對象時,我想從它附加到不同類的所有事件中取消訂閱。我想以編程方式進行編輯,即我可以訪問類A的對象,並且想知道從不同的類註冊了哪些事件,然後取消訂閱它們。可能嗎?訪問用戶事件
假設我有一個類A,它從不同的類訂閱了n個不同的事件(說B類的事件1和C類的事件2)。在處理A類對象時,我想從它附加到不同類的所有事件中取消訂閱。我想以編程方式進行編輯,即我可以訪問類A的對象,並且想知道從不同的類註冊了哪些事件,然後取消訂閱它們。可能嗎?訪問用戶事件
不,它不是。技術上你的class A
完全沒有提及class B
和class C
。參考是另一種方式。
您必須跟蹤A
中的字段中的事件,並在處置時手動取消訂閱。
感謝但實際上A類在運行時有條件地訂閱事件,所以跟蹤它註冊的事件有點難。你推薦任何優秀的設計模式或技術來存儲註冊的事件。 – Kumar
您必須跟蹤您訂閱事件的所有對象,併爲每個對象記錄哪些事件。您可能需要某種包含每個事件的對象引用和標誌的列表。這很混亂,但[沒有好的方法來引用一個事件](http://stackoverflow.com/questions/4755988/how-to-reference-an-event-in-c-sharp)。 –