Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
Type.GetEvents, méthode
Retourne tous les événements publics qui sont déclarés ou hérités par le Type en cours.
Assembly : mscorlib (dans mscorlib.dll)
Valeur de retour
Type : System.Reflection.EventInfo[]Tableau d'objets EventInfo représentant tous les événements publics qui sont déclarés ou hérités par le Type en cours.
ou
Tableau vide du type EventInfo si le Type en cours n'a pas d'événements publics.
Implémentations
_Type.GetEvents()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 méthode GetEvents ne retourne pas les événements dans un ordre spécifique, par exemple par ordre alphabétique ou par ordre de déclaration. Votre code ne doit pas être fonction de l'ordre dans lequel les événements sont retournés, car cet ordre varie.
Cette méthode peut être substituée par une classe dérivée.
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 les objets 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 obtient un tableau d'objets EventInfo ainsi que tous les événements d'une classe Button, puis il affiche les noms des événements. Pour compiler l'exemple Visual Basic, utilisez la ligne de commande suivante :
vbc type_getevents1.vb /r:System.Windows.Forms.dll /r:System.dll
using System; using System.Reflection; using System.Security; class EventsSample { public static void Main() { try { // Creates a bitmask based on BindingFlags. BindingFlags myBindingFlags = BindingFlags.Instance | BindingFlags.Public; Type myTypeEvent = typeof(System.Windows.Forms.Button); EventInfo[] myEventsBindingFlags = myTypeEvent.GetEvents(myBindingFlags); Console.WriteLine("\nThe events on the Button class with the specified BindingFlags are : "); for (int index = 0; index < myEventsBindingFlags.Length; index++) { Console.WriteLine(myEventsBindingFlags[index].ToString()); } } catch(SecurityException e) { Console.WriteLine("SecurityException :" + e.Message); } catch(ArgumentNullException e) { Console.WriteLine("ArgumentNullException : " + e.Message); } catch(Exception e) { Console.WriteLine("Exception : " + e.Message); } } }
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.