在C#源的方法也有一些是這樣的:我如何才能找到這是一個事件
public event UnloadHandler Unload;
public delegate void UnloadHandler();
然後在程序有來電卸載(),當我打F12看執行它再次跳轉到該事件聲明。那麼我怎麼才能找到這個Unload()方法的真正主體?
在C#源的方法也有一些是這樣的:我如何才能找到這是一個事件
public event UnloadHandler Unload;
public delegate void UnloadHandler();
然後在程序有來電卸載(),當我打F12看執行它再次跳轉到該事件聲明。那麼我怎麼才能找到這個Unload()方法的真正主體?
Unload
是不是一種方法,它是一個event - 它不有一個「真正的身體」。
當事件發生時,附加到它的任何處理程序將依次執行。您可以通過Delegate.GetInvocationList
從類內的代碼中獲取附加處理程序的列表,但是您不能奇蹟般地跳到實現代碼。
你可以做的是通過搜索源找到事件處理程序附加語法Unload += /* something */
的地方;這會告訴你在事件發生時計劃運行的內容。
右鍵單擊並選擇「查找用法」。某處應該爲Unload事件分配一個方法(可能有多個)。它看起來像
this.Unload += new UnloadHandler(form_Unload);
或
this.Unload += form_Unload;
然後你可以打F12,就會向添加了處理程序。
最簡單的方法是在UnloadHandler聲明中敲擊F12。如果你有Visual Studio,也可能會更好,只需嘗試類似Unload + =(TAB)的那樣 - 並且Visual Studio會爲你自動生成方法存根。
乾杯, 伊萬
如果您已經安裝了ReSharper的,將工作,不是嗎? – 2012-03-19 17:58:12
Shift-F12應該在VS 2010中執行相同的操作 – 2012-03-19 18:23:10