问题描述
一个类实现了一个接口,这个接口中有ClearEventHandler函数,意思是要把所有接受这个event的类都清除掉,就是再发event,那些类的事例也不能接受了,如何来做呢?搜了半天没搜到
解决方案
解决方案二:
触发事件的时候判断是否触发就可以了。清除的话可以用event-=委托。
解决方案三:
假如这个方法和这个event是在同一个类里声明的话,你可以这么做:publiceventEventHandlerMyEvent;publicvoidClearEventHandlers(){foreach(DelegatedinMyEvent.GetInvocationList()){MyEvent-=(EventHandler)d;}}
解决方案四:
LS哪位大哥的也可以...不过,我觉得这样比较方便...event=null;因为触发事件的前提是先判断它是否为Null...
解决方案五:
前提要在同一个类中,否则只能event-=委托;
时间: 2024-11-02 01:35:16