次の方法で共有


EventInfo.EventHandlerType プロパティ

このイベントに関連付けられている基になるイベント ハンドラ デリゲートの Type オブジェクトを取得します。

Public ReadOnly Property EventHandlerType As Type
[C#]
public Type EventHandlerType {get;}
[C++]
public: __property Type* get_EventHandlerType();
[JScript]
public function get EventHandlerType() : Type;

プロパティ値

デリゲート イベント ハンドラを表す読み取り専用の Type オブジェクト。

例外

例外の種類 条件
SecurityException 呼び出し元に、必要なアクセス許可がありません。

使用例

 
' The following example uses instances of classes in 
' the System.Reflection namespace to discover an event argument type.
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class MainClass
    Delegate Sub MyDelegate(ByVal i As Integer)
    Public Event ev As MyDelegate
    Public Sub Fire(ByVal i As Integer)
        AddHandler ev, AddressOf Me.Fire
    End Sub 'Fire

    Public Shared Sub Main()
        Dim deleg As Type = GetType(MainClass).GetEvent("ev").EventHandlerType
        Dim invoke As MethodInfo = deleg.GetMethod("Invoke")
        Dim pars As ParameterInfo() = invoke.GetParameters()
        Dim p As ParameterInfo
        For Each p In pars
            Console.WriteLine(p.ParameterType)
        Next p
    End Sub 'Main
End Class 'MainClass

[C#] 
// 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 void Fire(int i) 
    {
        ev += new MyDelegate(this.Fire);
    }

    public static void Main() 
    {
        Type deleg = typeof(MainClass).GetEvent("ev").EventHandlerType;
        MethodInfo invoke = deleg.GetMethod("Invoke");
        ParameterInfo[] pars = invoke.GetParameters();
        foreach (ParameterInfo p in pars) 
        {
            Console.WriteLine(p.ParameterType);
        }
    }
}

[C++] 
// The following example uses instances of classes in
// the System::Reflection namespace to discover an event argument type.
#using <mscorlib.dll>

using namespace System;
using namespace System::Reflection;

public __delegate void MyDelegate(int  i);

public __gc class MainClass {
public:
   __event MyDelegate*  ev;
public:
   void Fire(int i) {
      ev += new MyDelegate(this, &MainClass::Fire);
   }
};

int main() {
   Type*  deleg = __typeof(MainClass)->GetEvent(S"ev")->EventHandlerType;
   MethodInfo*  invoke = deleg->GetMethod(S"Invoke");
   ParameterInfo*  pars[] = invoke->GetParameters();
   System::Collections::IEnumerator* myEnum = pars->GetEnumerator();
   while (myEnum->MoveNext()) {
      ParameterInfo* p = __try_cast<ParameterInfo*>(myEnum->Current);
      Console::WriteLine(p->ParameterType);
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

.NET Framework セキュリティ:

参照

EventInfo クラス | EventInfo メンバ | System.Reflection 名前空間 | Type | Delegate | EventHandler