我相当确信这是不可能的,但我仍会提出问题。
为了对事件进行一次性订阅,我经常使用这个(我自己发明的)模式:
EventHandler handler=null;
handler = (sender, e) =>
{
SomeEvent -= handler;
Initialize();
};
SomeEvent += handler;
这段代码有很多样板内容,并且会让 Resharper 抱怨修改了闭包。有没有办法将此模式转换为扩展方法或类似的方式?有更好的实现方式吗?
理想情况下,我希望像这样:
SomeEvent.OneShot(handler)