使用反射清除所有掛在事件上的delegate

http://www.cnblogs.com/ncindy/archive/2007/03/23/685186.html

 

在.net中,event是一個相當有用的特性,它讓我們可以很輕鬆的實現回調。但是它也有着相當的不方便之處:一個event在聲明它的class之外只能使用+=/-=操作符進行delegate的增減,無法一次刪除所有掛在它上面的delegate。
程序規模小的時候還好辦,一旦程序膨脹,想弄清到底在一個事件上掛了那些delegate還真是挺麻煩的事情。尤其是很多class都有事件,很多事件在不同的地方被掛鉤。當確定一個對象不用的時候,你需要及時把它的事件上掛的delegate斷開。
下面這個函數可以起到直接清空一個對象所有的事件的作用,還是老規矩,代碼就不多解釋了:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章