2013-02-25 4 views
1

나는 대리자와 EventHandler 사이의 차이에 대해 묻는 다음 질문을 읽었습니다 : Difference between EventHandler and delegete void(). 오늘 오후에 제가 읽은 몇 가지 다른 질문이 있습니다.EventHandler 오해

대리인은 함수에 대한 포인터이며 멀티 캐스트라는 것을 알고 있습니다. 나는 이벤트 처리기가 "대리자"라는 것을 읽었습니다. 이 서명이 있음을 확인합니다.

Public Delegate Sub EventHandler (_ 
    sender As Object, _ 
    e As EventArgs _ 
) 

그러나 위임을 상속하지 않습니다. 나는 VB.NET에서 Handles 키워드를 사용한다. Button1.Click을 처리합니다. Event Handler의 요점은 무엇입니까? 객체 및 EventArg와 같은 두 개의 인수가있는 단순한 델리게이트입니까? EventHandler 클래스가 Delegate에서 상속되지 않는 이유는 무엇입니까?

답변

0

이벤트 처리기는 이벤트가 발생할 때 실행될 루틴입니다.

대리자는 루틴에 대한 참조입니다.

처리기가없는 경우 대리인은 아무 것도 참조 할 수 없습니다.

대리자는 VB에서 함수 포인터를 처리하기 쉬운 방법입니다. EventHandler는 대리자가 포인터가 아닌 함수이므로 상속받을 필요가 없습니다.

1

대리인은 클래스가 아닙니다. 그리고 그런대로 상속받을 수 없습니다.

관찰 한 EventHandler는 잘 알려진 서명을 가진 대리자 일 뿐이며 따라서 이벤트 발생 및 처리의 일관된 방식을 정의합니다.

+0

+1 "위임은 클래스가 아닙니다." – w0051977