C#이 코드 조각을 어떻게 보간하는지 알고 싶습니다. 은 "현실"EV (이 전자) 어떻게 번역에서대리자를 루프 오버
private EventHandlerList events = new EventHandlerList();
private Object myeventObject = new object();
public event EventHandler<EventArgs> myevent
{
add { events.AddHandler(myeventObject, value); }
remove { events.RemoveHandler(myeventObject, value); }
}
:
public delegate void ChangeStateHandler(object sender, EventArgs e);
public event ChangeStateHandler ChangeStateEvent = delegate { };
protected void OnChangeState(EventArgs e) {
ChangeStateHandler ev = ChangeStateEvent;
ev(this, e); // <<<<< that LINE
}
나는 번역 그 부분 알아? 하나의 함수 (EV)는 루프를 생성 할 수있는 방법
ChangeStateHandler ev = ChangeStateEvent;
foreach (myHandler in ev) {
myHandler(this, e);
}
하지만, : 뭔가처럼 생각? 어떻게 그런 식으로 구현합니까?
건배
닫기
는 기본적으로 마법이 무엇인가 "묻는있는 [멀티 캐스트 대표 (http://msdn.microsoft.com로 /en-us/library/ms173175.aspx)에 첨부 된 여러 핸들러를 호출 할 수 있습니까? " 편집 : 어떻게 내 자신의 멀티 캐스트 대리인 롤백하거나 비슷한 동작을 모방 할 수 있습니까? –
당신이 무엇을 요구하고 있는지 이해하기가 어렵습니다. 생성 된 CIL이 어떻게 생겼는지 알고 싶다면 decompiler를 사용하십시오. – Tarec
@Chris : 정확히! – Kaiser69