Aller au contenu

Instanciation et invocation

Contexte : Créez une instance de délégué en référençant une méthode (par son nom ou une expression lambda). Invoquez‑la comme une méthode.

public delegate void Display(string text);
public static void Show(string msg) => Console.WriteLine(msg);
// Syntaxe ancienne (C# 1.0)
Display d1 = new Display(Show);
// Syntaxe simplifiée (C# 2.0+)
Display d2 = Show;
// Avec expression lambda (C# 3.0+)
Display d3 = (msg) => Console.WriteLine(msg);
d2("Hello"); // appelle Show
d3("World");

Vérifiez toujours la présence de null avant d’invoquer un délégué.

if (d2 != null) d2("Sûr");
// Ou avec l’opérateur null‑conditionnel
d2?.Invoke("Sûr");

Gestionnaires d’événements de bouton : Dans Windows Forms ou WPF, vous instanciez un délégué pour connecter un événement de clic de bouton à une méthode.

Exemple : Dans WinForms, button.Click += new EventHandler(Button_Click); instancie un délégué EventHandler.