gpt4 book ai didi

c# - C# 中的 lambda 表达式和消息框

转载 作者:行者123 更新时间:2023-12-04 16:19:25 25 4
gpt4 key购买 nike

private void SimpleLambda()
{
dynamic showMessage = x => MessageBox.Show(x);

showMessage("Hello World!");
}

错误消息是:
无法将 lambda 表达式转换为动态类型,因为它不是委托(delegate)类型

任何帮助,

最佳答案

这与 MessageBox 无关- 如错误消息所述,您根本无法将 lambda 表达式转换为 dynamic因为编译器不知道要创建一个实例的委托(delegate)类型。

你要:

Action<string> action = x => MessageBox.Show(x);

甚至可以使用方法组转换,尽管您必须匹配返回类型:
Func<string, DialogResult> func = MessageBox.Show;

然后您可以使用 dynamic如果你想:
dynamic showMessage = action; // Or func
showMessage("Hello World!");

或者,您可以在显式委托(delegate)实例表达式中指定 lambda 表达式:
dynamic showMessage = new Action<string>(x => MessageBox.Show(x));

关于c# - C# 中的 lambda 表达式和消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18381216/

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