2012-03-19 16 views
0

在C#源的方法也有一些是這樣的:我如何才能找到這是一個事件

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

然後在程序有來電卸載(),當我打F12看執行它再次跳轉到該事件聲明。那麼我怎麼才能找到這個Unload()方法的真正主體?

回答

4

Unload是不是一種方法,它是一個event - 它不一個「真正的身體」。

當事件發生時,附加到它的任何處理程序將依次執行。您可以通過Delegate.GetInvocationList從類內的代碼中獲取附加處理程序的列表,但是您不能奇蹟般地跳到實現代碼。

可以做的是通過搜索源找到事件處理程序附加語法Unload += /* something */的地方;這會告訴你在事件發生時計劃運行的內容。

1

右鍵單擊並選擇「查找用法」。某處應該爲Unload事件分配一個方法(可能有多個)。它看起來像

this.Unload += new UnloadHandler(form_Unload); 

this.Unload += form_Unload; 

然後你可以打F12,就會向添加了處理程序。

+0

如果您已經安裝了ReSharper的,將工作,不是嗎? – 2012-03-19 17:58:12

+0

Shift-F12應該在VS 2010中執行相同的操作 – 2012-03-19 18:23:10

1

最簡單的方法是在UnloadHandler聲明中敲擊F12。如果你有Visual Studio,也可能會更好,只需嘗試類似Unload + =(TAB)的那樣 - 並且Visual Studio會爲你自動生成方法存根。

乾杯, 伊萬

相關問題