2009-08-03 2 views
5

이벤트에 메서드를 추가하기 위해 + = 연산자에 해당하는 원시 코드를 누군가에게 말해 줄 수 있는지 궁금합니다. 기술적 인 견지에서 어떻게 작동하는지 궁금합니다.= + 이벤트 할당에 해당하는 코드

답변

10

event은 속성이 "get"및 "set"을 정의하는 것과 같은 방식으로 "add"및 "remove"를 포함하는 메서드 집합을 정의합니다. 이 효과는 다음과 같습니다.

obj.add_SomeEvent(handler); 

내부적으로 이벤트는 아무 것도 할 수 없습니다. 2 일반적인 경우가 있습니다 대리자와

("필드와 같은"이벤트를 포함)

  • EventHandlerList 구현 대리자 필드

    • 이벤트는, 효과적으로 Delegate.Combine는 사용

      handler = Delegate.Combine(handler, value); 
      

      EventHandlerList에는 키 객체가 있습니다.

      Events.AddHandler(EventKey, value); 
      
  • 관련 문제