跟進我的問題here:如何從匿名定義的事件處理程序中提取「真實」目標?
根據所提出的意見 -
編譯器創建了一個假名類成員,重視它,就像你附加聲明的方法。
我不完全理解這是什麼意思,但我可以確認,如果說
Foo.Bar += (S, E) => { /*Code Goes Here*/ }
,而不是我,而不是說
Foo.Bar += FooBar;
private void FooBar(object sender, EventArgs e){
/*Code Goes Here*/
}
然後Event.Target
變化從WhatIsThis.App.<>c
到WhatIsThis.App
。
這真棒,但我不能保證我會一直寫一個實際的方法來附加到事件處理程序。在我使用匿名方法的情況下,是否有一種方法可以提取目標,或者我只是使用定義的方法(我的意思是,我可以忍受這一點,但是如果存在的話一些高科技魔法,我可以用它來提取真正的目標,然後我就是爲了它)。
使用第一個參數('sender')有什麼問題? – spender
@spender問題在於,在某些情況下,發件人將爲空。無論如何,發件人並不意味着成爲目標。這就像是從我自己給自己發送一個包裹,不是嗎? – Will
...只是趕上你之前的問題......忽略之前的評論。 – spender