我相當確信這是不可能的,但我仍然會問。單次活動訂閱
爲了使單次認購活動,我經常發現自己使用這個(自己發明)模式:
EventHandler handler=null;
handler = (sender, e) =>
{
SomeEvent -= handler;
Initialize();
};
SomeEvent += handler;
這是相當多的鍋爐板,並且這也使得ReSharper的關於修改後的關閉聲。有沒有將這種模式轉換爲擴展方法或類似方法的方法?一個更好的方法呢?
理想情況下,我想是這樣的:
SomeEvent.OneShot(handler)
我看不出爲什麼你不能把樣板代碼放入擴展方法。或者我沒有得到這個問題? – Achim 2011-04-11 15:33:23
你如何通過取消訂閱事件?它有一個共同的基礎類型嗎?不是代表值類型(即,如果您以某種方式傳遞事件,則處理副本) – spender 2011-04-11 15:34:21
@spender:所有代表都是引用類型。 – 2011-04-11 15:37:25