之間的區別,我想確認的東西 - 當我註冊的方法爲訂戶的事件很長的路要走,就像這樣:註冊代表和註冊命名方法事件
_serviceContext.ReadingEntity += new EventHandler<ReadingWritingEntityEventArgs>(_serviceContext_ReadingEntity);
我需要這不同於從註冊事件的訂閱,方法,如果我不希望它繼續被稱爲當事件被觸發,這樣做:
_serviceContext.ReadingEntity -= new EventHandler<ReadingWritingEntityEventArgs>(_serviceContext_ReadingEntity);
當我註冊一個委託作爲訂戶的事件,就像這樣:
public guy ThisMethod()
{
_serviceContext.ReadingEntity += delegate(object sender, ReadingWritingEntityEventArgs e)
{
};
}
無法從該方法的用戶列表中取消註冊該委託。所以我假定這個註冊的範圍僅限於它註冊的方法 - 也就是說,如果_serviceContext.ReadingEntity事件在ThisMethod調用的方法中被觸發,這個註冊將已經過期,並且委託內的代碼不會跑。它是否正確?
謝謝!
p.s.我意識到註冊事件處理程序的第一個「長」方法也有範圍限制,但我對此有點朦朧。然而,我的主要問題是代表註冊是否會在上述方法之外生存。
謝謝扎伊德。你粘貼的代碼很近,但沒有編譯 - 我必須使用EventHandler而不是Action。 –
@AndrewBSchultz相應編輯.. –