ラムダを直接渡すことはできません
form.Invoke(() => AMethod(form));
奇妙なことに、ラムダはデリゲート型ではないためです(コンパイラエラーによる)。JonSkeetの.NET4.0の本でさまざまな情報を思い出しているようです。そしてMSDNでそれは言う:
ラムダ式は、デリゲートまたは式ツリータイプを 作成するために使用できる無名関数です
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();
}
}
しかし、ここでコンパイラエラーが発生します。
デリゲート型ではないため、ラムダ式を型'System.Delegate'に変換できません。
Lambdaは、匿名のデリゲートの構文糖衣であると想定されています。それで、ここでの話は何ですか?私は何を逃しましたか?