0Pricing
C# Academy · Lección

Exploración de delegados y lambdas

Comprenda los delegados y las expresiones lambda para escribir código conciso y flexible

Exploración de delegados y lambdas es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 4 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 5 lecciones en total.

Usar lambdas con delegados

Usar lambdas con delegados

Las lambdas se pueden asignar directamente a delegados. Ejemplo:

Exploración de delegados y lambdas — ilustración 1

¿Qué es un delegado?

¿Qué es un delegado?

Un delegado es un tipo que contiene referencias a métodos con una firma específica. Los delegados permiten pasar métodos como parámetros o asignarlos dinámicamente.

Ejemplo: Los delegados se utilizan habitualmente para devoluciones de llamada y gestión de eventos.

Definir y utilizar delegados

Definir y utilizar delegados

Puede definir un delegado mediante la palabra clave delegate. Ejemplo:

Punto clave: Los delegados proporcionan una forma de encapsular métodos.

using System;

class Program {
    // Define a delegate
    public delegate void PrintDelegate(string message);

    static void Main() {
        PrintDelegate print = PrintMessage; // Assign method to delegate
        print("Hello, Delegates!"); // Call the method via the delegate
    }

    static void PrintMessage(string message) {
        Console.WriteLine(message);
    }
}

¿Qué es una expresión lambda?

¿Qué es una expresión lambda?

Una expresión lambda es una forma concisa de representar un método anónimo en C#. Utiliza la sintaxis (parameters) => expression.

Ejemplo: (x, y) => x + y representa un método que suma dos números.

Consejo: Las lambdas se utilizan habitualmente con LINQ y los delegados para lograr mayor brevedad y claridad.

Expresiones lambda con delegados

Usar lambdas con delegados

Las lambdas se pueden asignar directamente a delegados. Ejemplo:

Punto clave: Las lambdas hacen que el código sea más conciso y legible.

using System;

class Program {
    public delegate int MathOperation(int x, int y);

    static void Main() {
        MathOperation add = (x, y) => x + y; // Lambda for addition
        Console.WriteLine("Result: " + add(10, 20)); // Outputs: Result: 30
    }
}

Delegados multicast

Delegados multicast

Un único delegado puede hacer referencia a varios métodos. Todos los métodos se invocan en orden. Ejemplo:

using System;

class Program {
    public delegate void Notify(string message);

    static void Main() {
        Notify notify = PrintMessage;
        notify += LogMessage;

        notify("Hello, Multicast Delegates!"); // Calls both methods
    }

    static void PrintMessage(string message) {
        Console.WriteLine("Print: " + message);
    }

    static void LogMessage(string message) {
        Console.WriteLine("Log: " + message);
    }
}

Desafío práctico

Desafío práctico

Cree un programa que utilice un delegado StringOperation para realizar manipulaciones de cadenas, como convertir una cadena a mayúsculas e invertirla. Ejemplo:

using System;

class Program {
    public delegate string StringOperation(string input);

    static void Main() {
        StringOperation operations = ToUpperCase;
        operations += ReverseString;

        string input = "Hello";
        foreach (var operation in operations.GetInvocationList()) {
            Console.WriteLine(((StringOperation)operation)(input));
        }
    }

    static string ToUpperCase(string input) {
        return input.ToUpper();
    }

    static string ReverseString(string input) {
        char[] chars = input.ToCharArray();
        Array.Reverse(chars);
        return new string(chars);
    }
}

Buenas prácticas para delegados y lambdas

Buenas prácticas para delegados y lambdas

Estas son algunas buenas prácticas:

  • Utilice delegados para implementar devoluciones de llamada y gestionar eventos.
  • Prefiera las expresiones lambda para obtener un código conciso y claro.
  • Combine lambdas con LINQ para procesar datos de forma eficiente.
  • Evite las lambdas excesivamente complejas para mantener la legibilidad.

Consejo: Utilice nombres de parámetros significativos en las lambdas para mejorar la claridad del código.

¡Excelente trabajo!

¡Excelente trabajo!

¡Enhorabuena! Ha aprendido a utilizar delegados y expresiones lambda para escribir código funcional y basado en eventos en C#. En la próxima lección, exploraremos la reflexión en C#, una función muy potente para analizar tipos en tiempo de ejecución. ¡Sigamos programando!

Exploración de delegados y lambdas — ilustración 10

Preguntas frecuentes

¿La lección «Exploración de delegados y lambdas» es gratis?

Sí — el texto completo de «Exploración de delegados y lambdas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 5 lecciones en total.

¿Qué aprenderé en «Exploración de delegados y lambdas»?

Comprenda los delegados y las expresiones lambda para escribir código conciso y flexible Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C# Academy?

No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 5.

¿Cuánto tiempo toma la lección «Exploración de delegados y lambdas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C# Academy?

Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Genéricos en C#
  2. Async y await: trabajo con código asíncrono
  3. Comprender los subprocesos y las tareas
  4. Exploración de delegados y lambdas
  5. Comprender la reflexión en C#
← Volver a C# Academy