我试图在变量中存储一个linq express,但它给了我这个编译时错误
Emebeded Statement不能是声明或lable状态
我找到了如何从这个stackoverflow问题中为一个变量赋一个linq表达式 Lambdaexpression of Linq-query in a variable
但是当我尝试实现它时,我得到以下错误, 有人能帮我吗 ?
我试过的代码
if (dtpFrom.DateTime != null)
Func<BAL.Receipt , DateTime? > expr = receipt => receipt.Date ;
答案 0 :(得分:2)
这是因为该代码片段无效C#。 this其他StackOverflow答案解释了原因。总结一下这个答案,C#规范声明if语句的主体必须是 embedded-statement ,它不包含作为变量声明的语句。
要让代码停止导致该错误,您可以尝试在if语句主体周围抛出括号:
if (dtpFrom.DateTime != null)
{
Func<BAL.Receipt , DateTime? > expr = receipt => receipt.Date ;
}
虽然这不会做太多任何事情,因为你只是将lambda存储在Func&lt;,&gt;类型的临时变量中。只有if语句中的范围。你要么必须在if状态体内使用它,要么将它存储在其他地方。