这失败了
string temp = () => {return "test";};
带着错误
无法将lambda表达式转换为类型"string",因为它不是委托类型
错误是什么意思?我如何解决它?
这失败了
string temp = () => {return "test";};
带着错误
无法将lambda表达式转换为类型"string",因为它不是委托类型
错误是什么意思?我如何解决它?
这里的问题是,您定义了一个匿名方法,该方法返回string
,但试图将其直接赋给string
.这是一个表达式,调用时会产生string
,而不是直接的string
.需要将其分配给兼容的委托类型.在这种情况下,最简单的 Select 是Func<string>
Func<string> temp = () => {return "test";};
这可以在一行中通过一点强制转换或使用委托构造函数来建立lambda的类型,然后进行调用来完成.
string temp = ((Func<string>)(() => { return "test"; }))();
string temp = new Func<string>(() => { return "test"; })();
注:两个样本都可能短接到缺少{ return ... }
的表达形式
Func<string> temp = () => "test";
string temp = ((Func<string>)(() => "test"))();
string temp = new Func<string>(() => "test")();