C#移除所有事件绑定的方法
本文实例讲述了C#移除所有事件绑定的方法。分享给大家供大家参考。具体分析如下:
privatedelegateintDEL_TEST_EventHandler(intm,intn); privateeventDEL_TEST_EventHandlerDelTestEventHandler; ///<summary> ///移除所有的事件绑定 ///</summary> ///<paramname="clearEvent"></param> privatevoidclear_event(DEL_TEST_EventHandlerclearEvent) { Delegate[]dels=DelTestEventHandler.GetInvocationList(); foreach(Delegatedindels) { //得到方法名 objectdelObj=d.GetType().GetProperty("Method").GetValue(d,null); stringfuncName=(string)delObj.GetType().GetProperty("Name").GetValue(delObj,null); Debug.Print(funcName); DelTestEventHandler-=dasDEL_TEST_EventHandler; } } //测试主函数 privatevoidtest() { DelTestEventHandler+=add; DelTestEventHandler+=sub; DelTestEventHandler+=add; DelTestEventHandler+=sub; clear_event(DelTestEventHandler); } privateintadd(intm,intn) { returnm+n; } privatestaticintsub(intm,intn) { returnm-n; }
希望本文所述对大家的C#程序设计有所帮助。