Avatar ·

Delegado Func<T> sin tipo de retorno: ¿cómo usar Action en lugar de Func?

¡Hola a todos! Acabo de empezar a aprender C# y me encontré con una situación confusa con los delegados. Sé que existen los delegados incorporados `Func` y `Action`. Pero cuando intento usar `Func` para un método que no devuelve nada (void), obtengo un error de compilación. Aquí hay un ejemplo de código que no me funciona: ```csharp using System; class Program { static void Main() { // Intento crear un delegado para un método que imprime texto Func myDelegate = PrintMessage; // ¡Error! myDelegate("¡Hola, mundo!"); } static void PrintMessage(string message) { Console.WriteLine(message); } } ``` El compilador da un error: "No overload for 'PrintMessage' matches delegate 'Func'" o algo similar. Entiendo que `Func` espera un método que tome un `string` y devuelva un `string`, pero mi método no devuelve nada. ¿Por qué sucede esto? Porque he visto que `Func` puede aceptar parámetros, pero no