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:

¿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!

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
- Genéricos en C#
- Async y await: trabajo con código asíncrono
- Comprender los subprocesos y las tareas
- Exploración de delegados y lambdas
- Comprender la reflexión en C#