Temas importantes de C#

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

C#
Ejecutar código →
Program.cs
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);
    }
}
Resultado de la ejecución
42

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

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