当前位置: 移动技术网 > IT编程>开发语言>c# > C#移除所有事件绑定的方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例讲述了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#程序设计有所帮助。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网