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...
No answers yet.
Connectez-vous pour laisser une réponse
Blogs