2016-03-03 29 views
0

我使用Visual Studio 2013年如果我有一個方法調用是這樣的:「轉到定義」事件

CallMe(); 

就可以了,我可以右擊並選擇「轉到定義」看這種方法的主體。

但是,如果我有這樣的一個事件:就這個問題和選擇

Called(sender, new EventArgs()); 

右鍵單擊「轉到定義」會帶我到事件的聲明,而不是身體。

如何找到此活動的正文?

+0

看起來您正在嘗試重新創建['INotifyPropertyChanged'](https://msdn.microsoft.com/library/ms229614(v = vs.100).aspx)。也許事件爲空的原因是因爲你沒有訂閱者,因爲他們期望實際的'INotifyPropertyChanged'而不是你的重新實現。 –

回答

3

事件沒有「身體」 - 一個事件具有用戶事件發生時都會得到通知並執行事件處理程序。根據設計,該事件不知道其用戶是誰,也不需要擁有任何用戶。所以整個事件的定義都包含在其聲明中。

Visual Studio沒有內置支持來查找事件的所有訂閱者。您可以做的最好的方法是使用「查找所有引用」命令來查找訂閱者加入事件的每個位置。

+1

@ dbnex14如果沒有訂閱該事件,它將爲空。 (一個事件實際上只是一個多播委託的包裝,所以如果沒有訂閱者,那麼委託就是空的。)這聽起來像是對[delegates]的一些額外閱讀(https://msdn.microsoft.com/zh-CN/en -us/library/ms173171.aspx)和[events](https://msdn.microsoft.com/en-us/library/awbftdfh.aspx)可能對您有所幫助。 –

+0

謝謝@BJMyers。我會做閱讀並將我的更新轉貼爲單獨的問題,因爲您已經在這裏回答了我的原始問題。非常感激。 – pixel