EventInfo.EventHandlerType Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'oggetto Type
del delegato del gestore eventi sottostante associato a questo evento.
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
Valore della proprietà
Oggetto Type
di sola lettura che rappresenta il gestore eventi del delegato.
Implementazioni
Eccezioni
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio seguente viene utilizzata la EventHandlerType proprietà per individuare il tipo delegato di un evento e visualizzarne i tipi di parametro.
L'esempio definisce un delegato denominato MyDelegate
e un evento denominato ev
di tipo MyDelegate
. Il codice nel Main
metodo individua la firma dell'evento ottenendo il tipo delegato dell'evento, ottenendo il Invoke
metodo del tipo delegato e quindi recuperando e visualizzando i parametri.
// 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