Repository navigation
ES CSharp Delegates Lambdas
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
El delegado almacena la función llamada de una firma específica. Action no devuelve un resultado, Func devuelve uno, Predicate<T> devuelve bool. Lambda se escribe como arguments => expression o bloque. La variable capturada pertenece al cierre, por lo que cambiar su valor afecta las llamadas posteriores.
Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.
Example.cs:
// PROJECT-EXAMPLE
System.Func<int, int> twice = value => value * 2;
System.Console.WriteLine(twice(4));Resultado:
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}");Un método se puede pasar como grupo de métodos cuando su firma coincide con la del delegado. static-lambda no captura el contexto local. Para una lambda que devuelve una tarea, use Func<Task> o Func<T,Task> y espere la tarea; async void se deja a los controladores de eventos que requieren void.
Documentación oficial: Delegados, Lambdas y cierres - Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE