Lire en anglais

Partager via


Type.GetEvents Méthode

Définition

Obtient les événements qui sont déclarés ou hérités par le Type actuel.

Surcharges

GetEvents()

Retourne tous les événements publics qui sont déclarés ou hérités par le Type actuel.

GetEvents(BindingFlags)

En cas de substitution dans une classe dérivée, recherche les événements qui sont déclarés ou hérités par le Type actuel, à l’aide des contraintes de liaison spécifiées.

GetEvents()

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

Retourne tous les événements publics qui sont déclarés ou hérités par le Type actuel.

C#
public virtual System.Reflection.EventInfo[] GetEvents();

Retours

Tableau d'objets EventInfo représentant tous les événements publics qui sont déclarés ou hérités par le Type actuel.

- ou -

Tableau vide du type EventInfo si le Type actuel n'a pas d'événements publics.

Implémente

Exemples

L’exemple suivant obtient un tableau d’objets EventInfo , obtient tous les événements d’une Button classe et 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

C#
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);
        }
    }
}

Remarques

Un événement est considéré comme public à réfléchir s’il a au moins une méthode ou un accesseur public. Sinon, l’événement est considéré comme privé et vous devez utiliser BindingFlags.NonPublic | | BindingFlags.InstanceBindingFlags.Static (en Visual Basic, combiner les valeurs à l’aide de Or) pour l’obtenir.

Dans .NET 6 et les versions antérieures, la GetEvents méthode ne retourne pas d’événements dans un ordre particulier, tel que l’ordre alphabétique ou l’ordre de déclaration. Votre code ne doit pas dépendre de l’ordre dans lequel les événements sont retournés, car cet ordre varie. Toutefois, à compter de .NET 7, l’ordre est déterministe en fonction de l’ordre des métadonnées dans l’assembly.

Cette méthode peut être remplacée par une classe dérivée.

Le tableau suivant montre quels membres d’une classe de base sont retournés par les méthodes lors de la Get réflexion sur un type.

Type de membre statique Non statique
Constructeur Non Non
Champ Non Oui. Un champ est toujours masqué par nom et signature.
Événement Non applicable La règle système de type courante est que l’héritage est le même que celui des méthodes qui implémentent la propriété. Reflection traite les propriétés comme masquer par nom et signature. Voir la note 2 ci-dessous.
Méthode Non Oui. Une méthode (virtuelle et non virtuelle) peut être hide-by-name ou hide-by-name-and-signature.
Type imbriqué Non Non
Propriété Non applicable La règle système de type courante est que l’héritage est le même que celui des méthodes qui implémentent la propriété. Reflection traite les propriétés comme masquer par nom et signature. Voir la note 2 ci-dessous.
  1. 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.

  2. Pour la réflexion, les propriétés et les événements sont masqués par nom-et-signature. Si vous avez une propriété avec un accesseur get et un accesseur set dans la classe de base, mais que la classe dérivée n’a qu’un accesseur get, la propriété de classe dérivée masque la propriété de classe de base et vous ne pourrez pas accéder au setter sur la classe de base.

  3. Les attributs personnalisés ne font pas partie du système de type commun.

Si le courant Type représente un type générique construit, cette méthode retourne les objets avec les EventInfo paramètres de type remplacés par les arguments de type appropriés.

Si le courant Type représente un paramètre de type dans la définition d’un type générique ou d’une méthode générique, cette méthode recherche les événements de la contrainte de classe.

Voir aussi

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetEvents(BindingFlags)

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

En cas de substitution dans une classe dérivée, recherche les événements qui sont déclarés ou hérités par le Type actuel, à l’aide des contraintes de liaison spécifiées.

C#
public abstract System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr);

Paramètres

bindingAttr
BindingFlags

Combinaison de bits de valeurs d’énumération qui spécifie la façon dont est effectuée la recherche.

- ou -

Default pour retourner un tableau vide.

Retours

Tableau d'objets EventInfo représentant tous les événements qui sont déclarés ou hérités par le Type actuel et correspondent aux contraintes de liaison spécifiées.

- ou -

Tableau vide du type EventInfo si le Type actuel n'a pas d'événements ou si aucun des événements ne correspond aux contraintes de liaison.

Implémente

Exemples

L’exemple suivant obtient un tableau d’objets qui correspondent aux indicateurs de EventInfo liaison spécifiés, obtient tous les événements d’une Button classe et affiche les noms des événements. Pour compiler l’exemple Visual Basic, utilisez la ligne de commande suivante :

vbc type_getevents2.vb /r:System.Windows.Forms.dll /r:System.dll

C#
using System;
using System.Reflection;
using System.Security;

class EventsSample
{
    public static void Main()
    {
        try
        {
            // Create 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);
        }
    }
}

Remarques

Dans .NET 6 et les versions antérieures, la GetEvents méthode ne retourne pas d’événements dans un ordre particulier, tel que l’ordre alphabétique ou l’ordre de déclaration. Votre code ne doit pas dépendre de l’ordre dans lequel les événements sont retournés, car cet ordre varie. Toutefois, à compter de .NET 7, l’ordre est déterministe en fonction de l’ordre des métadonnées dans l’assembly.

Les indicateurs de filtre suivants BindingFlags peuvent être utilisés pour définir les événements à inclure dans la recherche :

  • Vous devez spécifier ou BindingFlags.InstanceBindingFlags.Static pour obtenir un retour.

  • Spécifiez BindingFlags.Public pour inclure des événements publics dans la recherche.

  • Spécifiez BindingFlags.NonPublic pour inclure des événements non publics (c’est-à-dire des événements privés, internes et protégés) dans la recherche. Seuls les événements protégés et internes sur les classes de base sont retournés ; les événements privés sur les classes de base ne sont pas retournés.

  • Spécifiez BindingFlags.FlattenHierarchy pour inclure et protected les public membres statiques dans la hiérarchie ; private les membres statiques dans les classes héritées ne sont pas inclus.

Les indicateurs de modification suivants BindingFlags peuvent être utilisés pour modifier le fonctionnement de la recherche :

  • BindingFlags.DeclaredOnly pour rechercher uniquement les événements déclarés sur , Typeet non les événements qui ont simplement été hérités.

Consultez la rubrique System.Reflection.BindingFlags (éventuellement en anglais) pour plus d'informations.

Un événement est considéré comme public à réfléchir s’il a au moins une méthode ou un accesseur public. Sinon, l’événement est considéré comme privé et vous devez utiliser BindingFlags.NonPublic | | BindingFlags.InstanceBindingFlags.Static (en Visual Basic, combiner les valeurs à l’aide de Or) pour l’obtenir.

Si le courant Type représente un type générique construit, cette méthode retourne les objets avec les EventInfo paramètres de type remplacés par les arguments de type appropriés.

Si le courant Type représente un paramètre de type dans la définition d’un type générique ou d’une méthode générique, cette méthode recherche les événements de la contrainte de classe.

Voir aussi

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1