¿Cuál es la diferencia entre Func, Action y Predicate en C#? ¿Cuándo usar cada uno?
¡Hola, colegas! Recientemente comencé a estudiar C# y me topé con los delegados incorporados: Func, Action y Predicate. Parecen similares — son delegados genéricos, pero me confundo sobre cuándo usar cada uno.
Entiendo que todos permiten pasar métodos como parámetros, pero sus firmas son diferentes. Por ejemplo, he visto código así:
Func<int, int, int> add = (x, y) => x + y;
Action<string> print = s => Console.WriteLine(s);
Predicate<int> isEven = x => x % 2 == 0;
Parece que los tres aceptan argumentos y hacen algo. Pero ¿por qué para verificar si un número es par se usa Predicate y no Func<int, bool>? ¿Y para qué sirve Action si se puede usar Func con tipo de retorno void?
Por favor, indíquenme cuál es la diferencia fundamental entre estos tres tipos de delegados y cómo elegir el correcto en un caso específico.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Registro en aplicaciones Kotlin: mejores prácticas y herramientas
Inyección de Dependencias en Swift: principios, ejemplos e implementación
Perfilado de código Java: encontrando cuellos de botella en la práctica
Introducción a C++ en 2025: por dónde empezar en la práctica