gpt4 book ai didi

c# - lambda 表达式是委托(delegate)吗?

转载 作者:行者123 更新时间:2023-11-30 13:48:20 24 4
gpt4 key购买 nike

我不能直接传递 lambda

form.Invoke(() => AMethod(form));

因为奇怪的是 lambda 不是委托(delegate)类型(根据编译器错误)。我似乎记得 Jon Skeet 的 .NET 4.0 一书中的不同信息。在 MSDN 上它说:

A lambda expression is an anonymous function that you can use to create delegates or expression tree types

    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();
}
}

然而,这里我们收到一个编译器错误:

Cannot convert lambda expression to type 'System.Delegate' because it is not a delegate type.

Lambda 应该是匿名委托(delegate)的语法糖。那么这里的故事是什么?我错过了什么?

最佳答案

Lambda 本身不是代表。但是,就像您引用的文本一样,它们可用于创建委托(delegate):

form.Invoke(new Action(() => AMethod(form)));

关于c# - lambda 表达式是委托(delegate)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12956606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com