Type.GetEvents Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
public:
virtual cli::array <System::Reflection::EventInfo ^> ^ GetEvents();
public virtual System.Reflection.EventInfo[] GetEvents ();
abstract member GetEvents : unit -> System.Reflection.EventInfo[]
override this.GetEvents : unit -> System.Reflection.EventInfo[]
Public Overridable Function GetEvents () As EventInfo()
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
#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;
array<EventInfo^>^myEvents = myType->GetEvents();
Console::WriteLine( "The events on the Button class are: " );
for ( int index = 0; index < myEvents->Length; index++ )
{
Console::WriteLine( myEvents[ index ] );
}
}
catch ( SecurityException^ e )
{
Console::WriteLine( "SecurityException: {0}", e->Message );
}
catch ( ArgumentNullException^ e )
{
Console::WriteLine( "ArgumentNullException: {0}", e->Message );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception: {0}", e->Message );
}
}
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);
}
}
}
open System
open System.Reflection
open System.Security
try
// Creates a bitmask based on BindingFlags.
let myBindingFlags = BindingFlags.Instance ||| BindingFlags.Public
let myTypeEvent = typeof<System.Windows.Forms.Button>
let myEventsBindingFlags = myTypeEvent.GetEvents myBindingFlags
printfn "\nThe events on the Button class with the specified BindingFlags are : "
for flag in myEventsBindingFlags do
printfn $"{flag}"
with
| :? SecurityException as e ->
printfn $"SecurityException: {e.Message}"
| :? ArgumentNullException as e ->
printfn $"ArgumentNullException: {e.Message}"
| e ->
printfn $"Exception : {e.Message}"
Imports System.Reflection
Imports System.Security
' Compile this sample using the following command line:
' vbc type_getevents.vb /r:"System.Windows.Forms.dll" /r:"System.dll"
Class EventsSample
Public Shared Sub Main()
Try
' Creates a bitmask based on BindingFlags.
Dim myBindingFlags As BindingFlags = BindingFlags.Instance Or BindingFlags.Public
Dim myTypeEvent As Type = GetType(System.Windows.Forms.Button)
Dim myEventsBindingFlags As EventInfo() = myTypeEvent.GetEvents(myBindingFlags)
Console.WriteLine(ControlChars.Cr + "The events on the Button class with the specified BindingFlags are : ")
Dim index As Integer
For index = 0 To myEventsBindingFlags.Length - 1
Console.WriteLine(myEventsBindingFlags(index).ToString())
Next index
Catch e As SecurityException
Console.WriteLine(("SecurityException :" + e.Message))
Catch e As ArgumentNullException
Console.WriteLine(("ArgumentNullException : " + e.Message))
Catch e As Exception
Console.WriteLine(("Exception : " + e.Message))
End Try
End Sub
End Class
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. |
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 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.
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 à
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.
public:
abstract cli::array <System::Reflection::EventInfo ^> ^ GetEvents(System::Reflection::BindingFlags bindingAttr);
public abstract System.Reflection.EventInfo[] GetEvents (System.Reflection.BindingFlags bindingAttr);
abstract member GetEvents : System.Reflection.BindingFlags -> System.Reflection.EventInfo[]
Public MustOverride Function GetEvents (bindingAttr As BindingFlags) As EventInfo()
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
#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
{
// Create a bitmask based on BindingFlags.
BindingFlags myBindingFlags = static_cast<BindingFlags>(BindingFlags::Instance | BindingFlags::Public);
Type^ myTypeEvent = System::Windows::Forms::Button::typeid;
array<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 ] );
}
}
catch ( SecurityException^ e )
{
Console::WriteLine( "SecurityException: {0}", e->Message );
}
catch ( ArgumentNullException^ e )
{
Console::WriteLine( "ArgumentNullException: {0}", e->Message );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception: {0}", e->Message );
}
}
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);
}
}
}
open System
open System.Reflection
open System.Security
try
// Creates a bitmask based on BindingFlags.
let myBindingFlags = BindingFlags.Instance ||| BindingFlags.Public
let myTypeEvent = typeof<System.Windows.Forms.Button>
let myEventsBindingFlags = myTypeEvent.GetEvents myBindingFlags
printfn "\nThe events on the Button class with the specified BindingFlags are : "
for flag in myEventsBindingFlags do
printfn $"{flag}"
with
| :? SecurityException as e ->
printfn $"SecurityException: {e.Message}"
| :? ArgumentNullException as e ->
printfn $"ArgumentNullException: {e.Message}"
| e ->
printfn $"Exception : {e.Message}"
Imports System.Reflection
Imports System.Security
Imports System.Windows.Forms
Class EventsSample
Public Shared Sub Main()
Try
' Create a bitmask based on BindingFlags.
Dim myBindingFlags As BindingFlags = BindingFlags.Instance Or BindingFlags.Public
Dim myTypeEvent As Type = GetType(System.Windows.Forms.Button)
Dim myEventsBindingFlags As EventInfo() = myTypeEvent.GetEvents(myBindingFlags)
Console.WriteLine(ControlChars.Cr + "The events on the Button class with the specified BindingFlags are:")
Dim index As Integer
For index = 0 To myEventsBindingFlags.Length - 1
Console.WriteLine(myEventsBindingFlags(index).ToString())
Next index
Catch e As SecurityException
Console.WriteLine("SecurityException:" + e.Message)
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException: " + e.Message)
Catch e As Exception
Console.WriteLine("Exception: " + e.Message)
End Try
End Sub
End Class
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.Instance
BindingFlags.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 etprotected
lespublic
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.