Déclenchement d'un événement
Les fonctionnalités d'événement sont assurées par trois éléments étroitement liés : une classe qui fournit les données d'événement, un délégué d'événement et la classe qui déclenche l'événement. Le .NET Framework possède une convention d'affectation de noms pour les classes et les méthodes relatives aux événements. Pour que votre classe déclenche un événement nommé EventName, vous avez besoin des éléments suivants :
Une classe contenant les données d'événement, nommée EventNameEventArgs. Cette classe doit dériver de System.EventArgs.
Un délégué pour l'événement, nommé EventNameEventHandler.
Une classe qui déclenche l'événement. Cette classe doit fournir la déclaration d'événements (EventName) et une méthode qui déclenche l'événement (OnEventName).
La classe des données d'événement et la classe du délégué d'événement peuvent déjà être définies dans la bibliothèque de classes .NET Framework ou dans une bibliothèque de classes tierce. Dans ce cas, vous n'avez pas à définir ces classes. Par exemple, si votre événement n'utilise pas de données personnalisées, vous pouvez utiliser System.EventArgs pour vos données d'événement et System.EventHandler pour votre délégué.
Vous définissez un membre d'événement dans votre classe à l'aide du mot clé event. Lorsque le compilateur rencontre un mot clé event dans votre classe, il crée un membre privé tel que :
private EventNameHandler eh = null;
Le compilateur crée également les deux méthodes publiques add_EventName
et remove_EventName
. Ces méthodes sont des connexions d'événement qui permettent aux délégués d'être combinés au délégué d'événement eh
ou d'en être supprimés. Les détails sont masqués dans le programmeur.
Notes
Dans les langages autres que C# et Visual Basic 2005, le compilateur peut ne pas générer automatiquement le code correspondant à un membre d'événement et vous pouvez être amené à définir explicitement les connexions d'événement et le champ délégué privé.
Une fois que vous avez défini votre implémentation d'événement, vous devez déterminer quand déclencher l'événement. Vous déclenchez l'événement en appelant la méthode protégée OnEventName dans la classe qui a défini l'événement ou dans une classe dérivée. La méthode OnEventName déclenche l'événement en appelant les délégués, passant dans toutes les données spécifiques à l'événement. Les méthodes déléguées pour l'événement peuvent exécuter des actions pour l'événement ou traiter les données spécifiques à l'événement.
Notes
La méthode protégée OnEventName permet également aux classes dérivées de substituer l'événement sans y attacher de délégué. Une classe dérivée doit toujours appeler la méthode OnEventName de la classe de base pour que les délégués inscrits puissent recevoir l'événement.
Lorsque vous souhaitez gérer des événements déclenchés dans une autre classe, vous ajoutez des méthodes déléguées à l'événement. Si vous n'êtes pas habitué au modèle délégué des événements dans le .NET Framework, consultez Événements et délégués.
Voir aussi
Tâches
Comment : déclencher et utiliser des événements
Comment : implémenter des événements dans votre classe