Retourne l'objet EventInfo représentant l'événement public spécifié.
Assembly : mscorlib (dans mscorlib.dll)
Public Function GetEvent ( _ name As String _ ) As EventInfo
public EventInfo GetEvent( string name )
public: virtual EventInfo^ GetEvent( String^ name ) sealed
abstract GetEvent : name:string -> EventInfo override GetEvent : name:string -> EventInfo
Paramètres
- name
- Type : System.String
Chaîne contenant le nom d'un événement déclaré ou hérité par le Type actuel.
Valeur de retour
Type : System.Reflection.EventInfoObjet représentant l'événement public spécifié qui est déclaré ou hérité par le Type en cours, s'il est trouvé ; sinon, null.
Implémentations
_Type.GetEvent(String)| Exception | Condition |
|---|---|
| ArgumentNullException |
name est null. |
Un événement est considéré comme public par rapport à la réflexion si au moins l'une de ses méthodes ou l'un de ses accesseurs est public. Sinon, l'événement est considéré comme privé, et vous devez utiliser BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (en Visual Basic, combinez les valeurs à l'aide d' Or) pour l'obtenir.
La recherche de name respecte la casse. La recherche inclut les événements d'instance statiques publics et publics.
Le tableau suivant indique les membres d'une classe de base qui sont retournés par les méthodes Get lors de la réflexion sur un type.
|
Type de membre |
Static |
Non statique |
|---|---|---|
|
Constructeur |
Non |
Non |
|
Champ |
Non |
Oui. Un champ est toujours masqué-par-nom-et-signature. |
|
Événement |
Non applicable |
La règle du système de type commun (CTS, Common Type System) est que l'héritage est le même que celui des méthodes qui implémentent la propriété. La réflexion traite les propriétés comme masquées-par-nom-et-signature. Voir la remarque 2 ci-dessous. |
|
Méthode |
Non |
Oui. Une méthode (à la fois virtuelle et non virtuelle) peut être masquée par nom ou masquée-par-nom-et-signature. |
|
De type imbriqué |
Non |
Non |
|
Propriété |
Non applicable |
La règle du système de type commun (CTS, Common Type System) est que l'héritage est le même que celui des méthodes qui implémentent la propriété. La réflexion traite les propriétés comme masquées-par-nom-et-signature. Voir la remarque 2 ci-dessous. |
-
Masquer-par-nom-et-signature prend en compte toutes les parties de la signature, y compris les modificateurs personnalisés, les types de retour, les types de paramètres, les sentinelles et les conventions d'appel non managées. Il s'agit d'une comparaison binaire.
-
Pour la réflexion, les propriétés et événements sont masqués-par-nom-et-signature. Si une propriété a un accesseur get et set dans la classe de base, mais si la classe dérivée n'a qu'un accesseur get, la propriété de la classe dérivée masque la propriété de la classe de base et vous ne pourrez pas accéder à l'accesseur Set sur la classe de base.
-
Les attributs personnalisés ne font pas partie du système de type commun (CTS, Common Type System).
Si le Type actuel représente un type générique construit, cette méthode retourne EventInfo avec les paramètres de type remplacés par les arguments de type appropriés.
Si le Type actuel représente un paramètre de type dans la définition d'un type ou d'une méthode générique, cette méthode recherche les événements de la contrainte de classe.
L'exemple suivant crée un objet EventInfo et obtient l'événement pour une classe de bouton pour l'événement spécifié.
Imports System Imports System.Reflection Imports System.Security Imports Microsoft.VisualBasic ' Compile this sample using the following command line: ' vbc type_getevent.vb /r:"System.Windows.Forms.dll" /r:"System.dll" Class MyEventExample Public Shared Sub Main() Try Dim myType As Type = GetType(System.Windows.Forms.Button) Dim myEvent As EventInfo = myType.GetEvent("Click") If Not (myEvent Is Nothing) Then Console.WriteLine(ControlChars.Cr + "Looking for the Click event in the Button class.") Console.WriteLine(ControlChars.Cr + myEvent.ToString()) Else Console.WriteLine("The Click event is not available with the Button class.") End If Catch e As SecurityException Console.WriteLine("An exception occurred.") Console.WriteLine("Message :" + e.Message) Catch e As ArgumentNullException Console.WriteLine("An exception occurred.") Console.WriteLine("Message :" + e.Message) Catch e As Exception Console.WriteLine("The following exception was raised : {0}", e.Message) End Try End Sub 'Main End Class 'MyEventExample
using System; using System.Reflection; using System.Security; class MyEventExample { public static void Main() { try { Type myType = typeof(System.Windows.Forms.Button); EventInfo myEvent = myType.GetEvent("Click"); if(myEvent != null) { Console.WriteLine("Looking for the Click event in the Button class."); Console.WriteLine(myEvent.ToString()); } else Console.WriteLine("The Click event is not available in the Button class."); } catch(SecurityException e) { Console.WriteLine("An exception occurred."); Console.WriteLine("Message :"+e.Message); } catch(ArgumentNullException e) { Console.WriteLine("An exception occurred."); Console.WriteLine("Message :"+e.Message); } catch(Exception e) { Console.WriteLine("The following exception was raised : {0}",e.Message); } } }
#using <system.dll> #using <system.windows.forms.dll> #using <system.drawing.dll> using namespace System; using namespace System::Reflection; using namespace System::Security; int main() { try { Type^ myType = System::Windows::Forms::Button::typeid; EventInfo^ myEvent = myType->GetEvent( "Click" ); if ( myEvent != nullptr ) { Console::WriteLine( "Looking for the Click event in the Button class." ); Console::WriteLine( myEvent ); } else Console::WriteLine( "The Click event is not available in the Button class." ); } catch ( SecurityException^ e ) { Console::WriteLine( "An exception occurred." ); Console::WriteLine( "Message : {0}", e->Message ); } catch ( ArgumentNullException^ e ) { Console::WriteLine( "An exception occurred." ); Console::WriteLine( "Message : {0}", e->Message ); } catch ( Exception^ e ) { Console::WriteLine( "The following exception was raised : {0}", e->Message ); } }
.NET Framework
Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Pris en charge dans : 4, 3.5 SP1Pris en charge dans :
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.