2010-11-26 107 views

回答

15

語義上沒有差異,但是使用靜態事件處理程序可以(如果你不小心)導致內存泄漏。有關更多信息,請參閱this article

我自己遇到過這個問題,試圖使用靜態事件處理程序來保持應用程序範圍內的數據源處於最新狀態;事件處理程序阻止了我的BindingSource組件被丟棄,導致各種奇怪的問題...

+0

+1,用於警告,@Bradley。難道你不需要在`Dispose()`之前退訂事件嗎? – IAbstract 2010-11-26 03:31:03

4

有效無。所有這一切意味着當處理程序是靜態的時候,範圍內不會有this(與所有靜態方法一樣)。