Aller au contenu

Mot‑clé event

Contexte : Le mot‑clé event restreint l’utilisation d’un champ délégué. Seule la classe déclarante peut invoquer l’événement ; le code externe ne peut qu’ajouter ou supprimer des gestionnaires.

public class Publisher
{
public event EventHandler SomethingHappened;
}

Le compilateur crée un champ délégué privé et ajoute des accesseurs add et remove.

// Équivalent approximatif
private EventHandler _somethingHappened;
public event EventHandler SomethingHappened
{
add { _somethingHappened += value; }
remove { _somethingHappened -= value; }
}

Vous pouvez fournir votre propre logique add/remove.

private EventHandler _handlers;
public event EventHandler MyEvent
{
add { _handlers += value; Console.WriteLine("Ajouté"); }
remove { _handlers -= value; Console.WriteLine("Supprimé"); }
}

Notification de changement de propriété : Dans les frameworks MVVM, l’événement PropertyChanged est déclaré avec event, permettant à la vue de s’abonner.

Exemple : INotifyPropertyChanged utilise un événement PropertyChanged.