J'ai une méthode Foo4 qui accepte un paramètre de type Func <>. Si je passe un paramètre de type anonyme, je n'obtiens aucune erreur. Mais si je crée et transmets un objet du type 'delegate' qui fait référence à une méthode avec une signature correcte, j'obtiens une erreur de compilation. Je ne suis pas capable de comprendre pourquoi je reçois une erreur dans ce cas.Passage de l'objet Delegate à la méthode avec le paramètre Func <>
class Learn6
{
delegate string Mydelegate(int a);
public void Start()
{
Mydelegate objMydelegate = new Mydelegate(Foo1);
//No Error
Foo4(delegate(int s) { return s.ToString(); });
//This line gives compiler error.
Foo4(objMydelegate);
}
public string Foo1(int a) { return a.ToString();}
public void Foo4(Func<int, string> F) { Console.WriteLine(F(42)); }
}
Très bonne question, une autre façon de faire est Foo4 (s => s.ToString()); –