Mot‑clé delegate (avant lambda)
Contexte : Avant C# 3.0, les méthodes anonymes s’écrivaient avec le mot‑clé delegate. Elles sont encore utilisables mais largement remplacées par les lambdas.
delegate(paramètres) { instructions }Exemples
Section intitulée « Exemples »Action<string> print = delegate(string msg){ Console.WriteLine(msg);};
Func<int, int> doubleIt = delegate(int x){ return x * 2;};Capture de variables externes
Section intitulée « Capture de variables externes »Identique aux lambdas : elles créent des fermetures.
int factor = 3;Func<int, int> multiply = delegate(int x) { return x * factor; };Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Compatibilité avec C# 2.0 : Si vous devez écrire du code compilable sur .NET Framework 2.0, vous devez utiliser des méthodes anonymes au lieu des lambdas.
Exemple : Dans certains ASP.NET WebForms hérités, vous pouvez encore voir delegate utilisé dans les gestionnaires d’événements.