如何找到事件的方法

时间:2012-03-19 17:43:31

标签: c# delegates

在C#源代码中有类似的内容:

public event UnloadHandler Unload;
public delegate void UnloadHandler();

然后在程序中调用Unload(),当我按F12查看实现它再次跳转到该事件声明。那么我怎样才能找到这个Unload()方法的真实主体呢?

3 个答案:

答案 0 :(得分:4)

Unload不是一种方法,它是event - 它 <真实的身体“。

当事件被引发时,附加到它的任何处理程序将依次执行。您可以通过Delegate.GetInvocationList从类中的代码中获取附加处理程序的列表,但是您无法神奇地跳转到实现代码。

可以做的是通过搜索来源找到使用语法Unload += /* something */附加事件处理程序的位置;这将告诉您在引发事件时计划运行的确切内容。

答案 1 :(得分:1)

右键单击并选择“查找用法”。某个地方应该为Unload事件分配一个方法(可能有多个)。它看起来像

this.Unload += new UnloadHandler(form_Unload);

this.Unload += form_Unload;

然后你可以在添加的处理程序上点击f12。

答案 2 :(得分:1)

最简单的方法是在UnloadHandler声明上点击F12。也可能很好,如果你有Visual Studio,只需尝试卸载+ =(TAB) - 并且visual studio会自动生成方法存根。

干杯, 伊万