C# 无法转换为表达式树的lambda表达式

C# 无法转换为表达式树的lambda表达式,c#,c#-7.0,C#,C# 7.0,来自C#深入:“并非所有lambda表达式都可以转换为表达式树” 是否有任何文档说明哪些lambda表达式不能转换为表达式树(ie语句就是其中之一) (如果这种情况随着时间的推移发生了变化,请让我参考最新的.net core 3和c#7.3相关信息)我可以检查一下吗:您所说的纯粹是表达式,即一行程序,而不是“语句体”lambdas(范围为{/}的东西)?我在询问哪些lambda可以或不能分配给可以由编译器翻译的表达式,我知道语句无效,我认为分配?:如果lambda表达式“有块体,包含简单或复合赋

来自C#深入:“并非所有lambda表达式都可以转换为表达式树”

是否有任何文档说明哪些lambda表达式不能转换为表达式树(ie语句就是其中之一)


(如果这种情况随着时间的推移发生了变化,请让我参考最新的.net core 3和c#7.3相关信息)

我可以检查一下吗:您所说的纯粹是表达式,即一行程序,而不是“语句体”lambdas(范围为
{
/
}
的东西)?我在询问哪些lambda可以或不能分配给可以由编译器翻译的表达式,我知道语句无效,我认为分配?:如果lambda表达式“有块体,包含简单或复合赋值运算符,包含动态绑定表达式,或者是异步的。”至于从那时到现在是否放松了这些操作,我想可能需要有人阅读补丁,因为没有最新的规范可用。(事实上,这有点尴尬--C#8即将发布。)Thx Jeroen!你能把这作为一个答案吗?我可以检查一下:你说的纯粹是表达式,即一行程序,而不是“语句体”lambdas(范围为
{
/
}
的东西)?我在询问哪些lambda可以或不能分配给可由编译器翻译的表达式,我知道语句无效,我认为分配?:如果lambda表达式有块体,包含简单或复合赋值运算符,包含动态绑定表达式,或者是异步的。”至于从那时到现在是否放松了这些操作,我想可能需要有人阅读补丁,因为没有最新的规范可用。(事实上,这有点令人尴尬--C#8即将发布。)Thx Jeroen!你能把这个作为回答吗?