Avatar ·

Délégué Func<T> sans type de retour : comment utiliser Action à la place de Func ?

Bonjour à tous ! Je viens de commencer à apprendre C# et je suis tombé sur une situation incompréhensible avec les délégués. Je sais qu'il existe des délégués intégrés `Func` et `Action`. Mais quand j'essaie d'utiliser `Func` pour une méthode qui ne retourne rien (void), j'obtiens une erreur de compilation. Voici un exemple de code qui ne fonctionne pas : ```csharp using System; class Program { static void Main() { // J'essaie de créer un délégué pour une méthode qui affiche du texte Func myDelegate = PrintMessage; // Erreur ! myDelegate("Bonjour, le monde !"); } static void PrintMessage(string message) { Console.WriteLine(message); } } ``` Le compilateur génère une erreur : "No overload for 'PrintMessage' matches delegate 'Func'" ou quelque chose du genre. Je comprends que `Func` attend une méthode qui prend un `string` et retourne un `string`, mais ma méthode ne retourne rien. Pourquoi cela se produit-il ? Pourtant, j'ai vu que `Func` peut accepter des paramètres, mais pas...