我使用Visual Studio 2013年如果我有一個方法調用是這樣的:「轉到定義」事件
CallMe();
就可以了,我可以右擊並選擇「轉到定義」看這種方法的主體。
但是,如果我有這樣的一個事件:就這個問題和選擇
Called(sender, new EventArgs());
右鍵單擊「轉到定義」會帶我到事件的聲明,而不是身體。
如何找到此活動的正文?
我使用Visual Studio 2013年如果我有一個方法調用是這樣的:「轉到定義」事件
CallMe();
就可以了,我可以右擊並選擇「轉到定義」看這種方法的主體。
但是,如果我有這樣的一個事件:就這個問題和選擇
Called(sender, new EventArgs());
右鍵單擊「轉到定義」會帶我到事件的聲明,而不是身體。
如何找到此活動的正文?
事件沒有「身體」 - 一個事件具有用戶事件發生時都會得到通知並執行事件處理程序。根據設計,該事件不知道其用戶是誰,也不需要擁有任何用戶。所以整個事件的定義都包含在其聲明中。
Visual Studio沒有內置支持來查找事件的所有訂閱者。您可以做的最好的方法是使用「查找所有引用」命令來查找訂閱者加入事件的每個位置。
@ dbnex14如果沒有訂閱該事件,它將爲空。 (一個事件實際上只是一個多播委託的包裝,所以如果沒有訂閱者,那麼委託就是空的。)這聽起來像是對[delegates]的一些額外閱讀(https://msdn.microsoft.com/zh-CN/en -us/library/ms173171.aspx)和[events](https://msdn.microsoft.com/en-us/library/awbftdfh.aspx)可能對您有所幫助。 –
謝謝@BJMyers。我會做閱讀並將我的更新轉貼爲單獨的問題,因爲您已經在這裏回答了我的原始問題。非常感激。 – pixel
看起來您正在嘗試重新創建['INotifyPropertyChanged'](https://msdn.microsoft.com/library/ms229614(v = vs.100).aspx)。也許事件爲空的原因是因爲你沒有訂閱者,因爲他們期望實際的'INotifyPropertyChanged'而不是你的重新實現。 –