Func<>型のパラメーターを受け入れるメソッドFoo4があります。匿名タイプのパラメーターを渡しても、エラーは発生しません。しかし、正しいシグニチャを持つメソッドを参照するタイプ'delegate'のオブジェクトを作成して渡すと、コンパイラエラーが発生します。この場合、なぜエラーが発生するのか理解できません。
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)); }
}