EventInfo.EventHandlerType プロパティ

定義

このイベントに関連付けられている基になるイベント ハンドラー デリゲートの Type オブジェクトを取得します。Gets the Type object of the underlying event-handler delegate associated with this event.

public:
 property Type ^ EventHandlerType { Type ^ get(); };
public Type EventHandlerType { get; }
member this.EventHandlerType : Type
Public ReadOnly Property EventHandlerType As 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という名前のデリゲートと、型MyDelegateのという名前evのイベントを定義します。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

適用対象

こちらもご覧ください