从事件获取事件处理程序?

7

只是想知道你想要实现什么? - Steve B
1
事件只实现添加和删除访问器块,就像获取和设置不同一样。因此,事件没有“获取”操作。更多信息请参见此处 - Jasper
在以下网址找到答案:https://dev59.com/rHVC5IYBdhLWcg3wcgqd请查看Hans Passant的帖子。 - Brij
1
@user125697 我在建议的重复问题中找到了答案。请查看Hans Passant的回答。https://dev59.com/rHVC5IYBdhLWcg3wcgqd - Brij
2个回答

2

如果您定义了事件,并且访问该事件的代码位于同一类中(即未派生),则可以访问它并获取调用列表。

MulticastDelegate m = (MulticastDelegate)MyEvent;  

var list = m.GetInvocationList();  

foreach(Delegate d in list)  
{  
    // look at the delegate
}  
  • 点击此处访问一个有关C# 事件的教程。

  • 点击此处进入微软社区,向他人求助关于C#语言事件的问题。

若您需要使用已定义的类中事件的调用列表而又不能修改该类的代码...


-3
你可以尝试这段代码 - 只需进行强制类型转换
var result = (EventHandler)control.Click;
Console.WriteLine(result.Method.Name);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接