Delegados y expresiones lambda en C#
En esta lección vas a pasar una función como parámetro a otro método con el delegado Func y una expresión lambda.
Introducción
Un delegado (delegate) es un tipo que representa un método y permite pasar un comportamiento como si fuera un valor. Una expresión lambda es una forma concisa de escribir una función en el mismo sitio, como (a, b) => a * b. Combinándolos, escribes métodos flexibles que reciben desde fuera la forma de procesar los datos.
El tipo Func<int, int, int> representa una función que recibe dos enteros y devuelve un entero. El método Apply no conoce el cálculo de antemano, solo llama a operation(left, right). Al pasarle la lambda (left, right) => left * right, Apply hace la multiplicación y devuelve 42.
Ejemplo de C# ejecutable
using System;
class Program
{
static int Apply(int left, int right, Func<int, int, int> operation)
=> operation(left, right);
static void Main()
{
int result = Apply(6, 7, (left, right) => left * right);
Console.WriteLine(result);
}
}
42Practica con el depurador
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos