나는 이것이 가능하지 않다고 확신하지만, 그럼에도 불구하고 요청할 것입니다. 이벤트에 싱글 - 샷 가입을하기 위해서는, 내가 자주 자신이 (자기 발명) 패턴을 사용하여 찾을에서싱글 샷 이벤트 구독
:
EventHandler handler=null;
handler = (sender, e) =>
{
SomeEvent -= handler;
Initialize();
};
SomeEvent += handler;
그것은 보일러 플레이트의 꽤 많은, 그리고 그것은 또한 ReSharper에서한다 수정 된 클로저에 대해 우는 소리. 이 패턴을 확장 메소드 또는 유사하게 바꾸는 방법이 있습니까? 그것을하는 더 좋은 방법? 당신은 C#에서 이벤트에 참조 할 수있는 유일한 방법은에 (+=
)에 가입하여 있기 때문에,
SomeEvent.OneShot(handler)
상용구 코드를 확장 메서드에 넣을 수없는 이유가 없습니다. 아니면 질문이 없었나요? – Achim
구독 취소를 위해 이벤트를 어떻게 전달합니까? 공통 기본 유형이 있습니까? 대리자가 값 유형이 아닙니까 (즉, 어떻게 든 이벤트를 전달하면 사본을 처리하게됩니다) – spender
@spender : 모든 대리자는 참조 유형입니다. –