event (référence C#)
Le mot clé event est utilisé pour déclarer un événement dans une classe d'éditeur.
Exemple
L'exemple suivant montre comment déclarer et déclencher un événement qui utilise EventHandler comme type délégué sous-jacent.Pour obtenir l'exemple de code complet qui illustre aussi comment utiliser le type délégué générique EventHandler<TEventArgs> et comment s'abonner à un événement et créer une méthode de gestionnaire d'événements, consultez Comment : publier des événements conformes aux indications du .NET Framework (Guide de programmation C#).
public class SampleEventArgs
{
public SampleEventArgs(string s) { Text = s; }
public String Text {get; private set;} // readonly
}
public class Publisher
{
// Declare the delegate (if using non-generic pattern).
public delegate void SampleEventHandler(object sender, SampleEventArgs e);
// Declare the event.
public event SampleEventHandler SampleEvent;
// Wrap the event in a protected virtual method
// to enable derived classes to raise the event.
protected virtual void RaiseSampleEvent()
{
// Raise the event by using the () operator.
if (SampleEvent != null)
SampleEvent(this, new SampleEventArgs("Hello"));
}
}
Les événements constituent un type spécial de délégué multicast qui peut uniquement être appelé au sein de la classe ou de la structure où ils sont déclarés (la classe d'éditeur).Si d'autres classes ou structures s'abonnent à l'événement, leurs méthodes de gestionnaire d'événements sont appelées lorsque la classe d'éditeur déclenche l'événement.Pour plus d'informations et d'exemples de code, consultez Événements (Guide de programmation C#) et Délégués (guide de programmation C#).
Les événements peuvent être marqués comme étant publics, privés, protégés, internes ou protectedinternal.Ces modificateurs d'accès définissent comment les utilisateurs de la classe peuvent accéder à l'événement.Pour plus d'informations, consultez Modificateurs d'accès (Guide de programmation C#).
Mots clés et événements
Les mots clés suivants s'appliquent aux événements.
Mot clé |
Description |
Pour plus d'informations |
---|---|---|
Rend l'événement disponible aux appelants à tout instant, même si aucune instance de la classe n'existe. |
Classes statiques et membres de classe statique (Guide de programmation C#) |
|
Permet aux classes dérivées de substituer le comportement de l'événement à l'aide du mot clé override. |
||
Spécifie que pour les classes dérivées le comportement n'est plus virtuel. |
|
|
Le compilateur ne génère pas les blocs d'accesseurs d'événement add et remove, et par conséquent, les classes dérivées doivent fournir leur propre implémentation. |
|
Un événement peut être déclaré comme un événement statique à l'aide du mot clé static.Cela rend l'événement disponible aux appelants à tout moment, même si aucune instance de la classe n'existe.Pour plus d'informations, consultez Classes statiques et membres de classe statique (Guide de programmation C#).
Un événement peut être marqué comme événement virtuel à l'aide du mot clé virtual.Les classes dérivées peuvent ainsi substituer le comportement de l'événement à l'aide du mot clé override.Pour plus d'informations, consultez Héritage (Guide de programmation C#).Un événement qui se substitue à un événement virtuel peut également être sealed, ce qui spécifie que pour les classes dérivées elle n'est plus virtuelle.Enfin, un événement peut être déclaré abstrait, ce qui signifie que le compilateur ne génère pas les blocs d'accesseurs d'événement add et remove.Par conséquent, les classes dérivées doivent fournir leur propre implémentation.
Spécification du langage C#
Pour plus d'informations, consultez la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.
Voir aussi
Tâches
Comment : combiner des délégués (délégués multicast) (Guide de programmation C#)