Repository navigation
FR CSharp Delegates Lambdas
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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.
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.
ClassicUO — Bad Newbie & C# Scripts IDE