EventInfo.EventHandlerType 속성

정의

이 이벤트와 연결된 내부 이벤트 처리기 대리자의 Type 개체를 가져옵니다.Gets the Type object of the underlying event-handler delegate associated with this event.

public:
 virtual property Type ^ EventHandlerType { Type ^ get(); };
public:
 property Type ^ EventHandlerType { Type ^ get(); };
public virtual Type EventHandlerType { get; }
public virtual Type? EventHandlerType { get; }
public Type EventHandlerType { get; }
member this.EventHandlerType : Type
Public Overridable ReadOnly Property EventHandlerType As Type
Public ReadOnly Property EventHandlerType As Type

속성 값

Type

대리자 이벤트 처리기를 나타내는 읽기 전용 Type 개체입니다.A read-only Type object representing the delegate event handler.

구현

예외

호출자에게 필요한 권한이 없는 경우The caller does not have the required permission.

예제

다음 예제에서는 속성을 사용 하 여 EventHandlerType 이벤트의 대리자 형식을 검색 하 고 해당 매개 변수 형식을 표시 합니다.The following example uses the EventHandlerType property to discover the delegate type of an event and to display its parameter types.

이 예제에서는 라는 대리자 MyDelegate 와 형식의 이벤트를 정의 합니다 ev MyDelegate .The example defines a delegate named MyDelegate and an event named ev of type MyDelegate. 메서드의 코드는 Main 이벤트의 대리자 형식을 가져오고 Invoke 대리자 형식의 메서드를 가져온 다음 매개 변수를 검색 하 고 표시 하 여 이벤트 시그니처를 검색 합니다.The code in the Main method discovers the event signature by getting the delegate type of the event, getting the Invoke method of the delegate type, and then retrieving and displaying the parameters.

// The following example uses instances of classes in
// the System::Reflection namespace to discover an event argument type.
using namespace System;
using namespace System::Reflection;

public delegate void MyDelegate( int i );
public ref class MainClass
{
public:
   event MyDelegate^ ev;
};

int main()
{
   Type^ delegateType = MainClass::typeid->GetEvent( "ev" )->EventHandlerType;
   MethodInfo^ invoke = delegateType->GetMethod( "Invoke" );
   array<ParameterInfo^>^pars = invoke->GetParameters();
   System::Collections::IEnumerator^ myEnum = pars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      ParameterInfo^ p = safe_cast<ParameterInfo^>(myEnum->Current);
      Console::WriteLine( p->ParameterType );
   }
}
// The example displays the following output:
//       System.Int32
// The following example uses instances of classes in
// the System.Reflection namespace to discover an event argument type.
using System;
using System.Reflection;

public delegate void MyDelegate(int i);
public class MainClass
{
    public event MyDelegate ev;

    public static void Main()
    {
        Type delegateType = typeof(MainClass).GetEvent("ev").EventHandlerType;
        MethodInfo invoke = delegateType.GetMethod("Invoke");
        ParameterInfo[] pars = invoke.GetParameters();
        foreach (ParameterInfo p in pars)
        {
            Console.WriteLine(p.ParameterType);
        }
    }
}
// The example displays the following output:
//       System.Int32
Imports System.Reflection

Public Delegate Sub MyDelegate(ByVal i As Integer)

Public Class MainClass
    Public Event ev As MyDelegate

    Public Shared Sub Main()
        Dim delegateType As Type = GetType(MainClass).GetEvent("ev").EventHandlerType
        Dim invoke As MethodInfo = delegateType.GetMethod("Invoke")
        Dim pars As ParameterInfo() = invoke.GetParameters()
        For Each p As ParameterInfo In pars
            Console.WriteLine(p.ParameterType)
        Next 
    End Sub 
End Class 
' The example displays the following output:
'     System.Int32

적용 대상

추가 정보