欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#移除所有事件绑定的方法

程序员文章站 2023-12-03 10:54:16
本文实例讲述了c#移除所有事件绑定的方法。分享给大家供大家参考。具体分析如下: private delegate int del_test_eventhandle...

本文实例讲述了c#移除所有事件绑定的方法。分享给大家供大家参考。具体分析如下:

private delegate int del_test_eventhandler(int m, int n);
private event del_test_eventhandler deltesteventhandler;
/// <summary>
/// 移除所有的事件绑定
/// </summary>
/// <param name="clearevent"></param>
private void clear_event(del_test_eventhandler clearevent)
{
 delegate[] dels = deltesteventhandler.getinvocationlist();
 foreach (delegate d in dels)
 {
  //得到方法名
  object delobj = d.gettype().getproperty("method").getvalue(d, null);
  string funcname = (string)delobj.gettype().getproperty("name").getvalue(delobj, null);
    debug.print(funcname);
  deltesteventhandler -= d as del_test_eventhandler;
 }
}
//测试主函数
private void test()
{
 deltesteventhandler += add;
 deltesteventhandler += sub;
   deltesteventhandler += add;
 deltesteventhandler += sub;
   clear_event(deltesteventhandler);
}
private int add(int m, int n)
{
 return m + n;
}
private static int sub(int m, int n)
{
 return m - n;
}

希望本文所述对大家的c#程序设计有所帮助。