Skip to content

FR CSharp Delegates Lambdas

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Délégués, lambdas et fermetures

Manuel C# · Exemples UO

Le délégué stocke la fonction appelée d'une signature spécifique. Action ne renvoie pas de résultat, Func en renvoie un, Predicate<T> renvoie bool. Lambda s'écrit arguments => expression ou block. La variable capturée appartient à la fermeture, donc changer sa valeur affecte les appels ultérieurs.

Exemple simple (Example.cs)

Enregistrez cet exemple séparément dans Example.cs. Exécutez-le indépendamment des autres exemples de cette page.

Example.cs:

// PROJECT-EXAMPLE
System.Func<int, int> twice = value => value * 2;
System.Console.WriteLine(twice(4));

Résultat:

8
Func<int, int, int> add = (left, right) => left + right;
Action<string> report = text => UO.Print(text);
report($"Total={add(2, 3)}");
int count = 0;
Action next = () => count++;
next();
next();
UO.Print($"Count={count}");

Une méthode peut être transmise en tant que groupe de méthodes lorsque sa signature correspond au délégué. static-lambda ne capture pas le contexte local. Pour un lambda renvoyant une tâche, utilisez Func<Task> ou Func<T,Task> et attendez la tâche ; async void est laissé aux gestionnaires d'événements nécessitant void.

Documentation officielle : Délégués, Lambdas et fermetures - Microsoft Learn.

Clone this wiki locally