我不能直接传递一个 lambda
form.Invoke(() => AMethod(form));
因为奇怪的是 lambda 不是委托类型(根据编译器错误)。我似乎记得 Jon Skeet 的 .NET 4.0 书中的不同信息。在MSDN上它说:
lambda 表达式是一个匿名函数,可用于创建 委托或表达式树类型
public static void Main()
{
Form form = new Form();
form.Show();
form.Invoke(() => AMethod(form));
Application.Run();
Console.Read();
}
public static void AMethod(Form form)
{
form.SendToBack();
}
}
然而,这里我们收到一个编译器错误:
无法将 lambda 表达式转换为类型“System.Delegate”,因为它不是委托类型。
Lambda 应该是匿名代表的语法糖。那么这里的故事是什么?我错过了什么?