我有一个接受 Func<> 类型参数的方法 Foo4。如果我传递匿名类型的参数,则不会出错。但是,如果我创建并传递一个引用具有正确签名的方法的“委托”类型的对象,我会得到编译器错误。我无法理解为什么在这种情况下我会出错。
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)); }
}