나는 많은 사람들이탈퇴 람다 이벤트 처리기는 ** 폐쇄와 함께 **
EventHandler HelloWorld = delegate { MessageBox.Show("Hello World!"); };
myButton.Click -= HelloWorld;
myButton.Click += HelloWorld;
의 명백한 대답
myButton.Click += (s, e) => MessageBox.Show("Hello World!");
"어떻게 다음 취소 않습니다"라는 질문을 한 알
하지만 람다를 사용하여 클로저를 만드는 방법은 무엇입니까? 내 객체 유형 Action
이다 AssessmentRationChanged
라는 이벤트를 가지고, 내가 thusly 히 그것을 배선있어 어떤 경우 : 이미 일부에 대해이 핸들러를 설정 한 기회가있다
foreach (MassFMVUpdateDTO dto in CurrentProperties)
dto.AssessmentRationChanged +=() => setCellColorBasedOnAssessmentRatioValue(dto);
어떤 경우/모든 개체에 이 루프? 그 (것)들을 구독 취소하는 방법 있는가?
나는 리플렉션을 사용할 수 있고 핸들러를 완전히 지울 수 있다고 확신하지만 깨끗한 방법이 있습니까?
Grrrr. 그래서 아마도 내 디자인을 다시 작업하고 이벤트에 함께 발신자를 전달합니까? -'Action'- 언제나처럼 Jon. –
John은 누구입니까? :) – jgauffin
@ Adam : 디자인 변경 여부를 알리는 데 필요한 문맥의 나머지 부분을 명확히하지 않았습니다. 나는 보낸 사람을 어떻게 통과하는 것이 도움이 될지 모르겠다. –