Pattern standard EventHandler et EventArgs
Contexte : Le pattern d’événement standard .NET utilise le délégué EventHandler et EventArgs (ou une classe dérivée) pour transmettre les données de l’événement.
Délégué EventHandler
Section intitulée « Délégué EventHandler »public delegate void EventHandler(object sender, EventArgs e);public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);EventArgs personnalisés
Section intitulée « EventArgs personnalisés »public class OrderEventArgs : EventArgs{ public int OrderId { get; set; } public decimal Amount { get; set; }}Implémentation du pattern
Section intitulée « Implémentation du pattern »public class OrderProcessor{ public event EventHandler<OrderEventArgs> OrderProcessed;
protected virtual void OnOrderProcessed(OrderEventArgs e) { OrderProcessed?.Invoke(this, e); }
public void Process(int orderId, decimal amount) { // logique de traitement OnOrderProcessed(new OrderEventArgs { OrderId = orderId, Amount = amount }); }}Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Tous les frameworks UI .NET : Button.Click utilise EventHandler. Form.Load utilise EventHandler. DataGridView.CellClick utilise DataGridViewCellEventArgs dérivé de EventArgs.
Exemple : La documentation de System.EventArgs montre de nombreux types dérivés.