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