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 セキュリティ:
- ReflectionPermission (非パブリック プロパティを返すために必要なアクセス許可) ReflectionPermissionFlag.TypeInformation (関連する列挙体)
参照
EventInfo クラス | EventInfo メンバ | System.Reflection 名前空間 | Type | Delegate | EventHandler