gpt4 book ai didi

c# - 构建表达式树来表示 if-else

转载 作者:太空狗 更新时间:2023-10-29 21:13:40 27 4
gpt4 key购买 nike

在完整条件表达式上使用 ExpressionSerialization 反序列化表达式树,即三元运算符给出错误。如果我使用三元运算符,它会导致 FullConditionExpression(系统不支持异常)

使用以下链接中的代码:

http://archive.msdn.microsoft.com/exprserialization

以上链接有最新版本吗?

http://metalinq.codeplex.com/

后来试过了

public Expression<Func<object, string>> LabelCriteria { get; set; }

LabelCriteria = x =>
{
if (true)
return "Cash";
else
return " ";
}

表达式不支持 if - else block 。它给出错误“带有语句主体的 lambda 表达式无法转换为表达式树。是否有任何其他方法可以做到这一点。

最佳答案

您必须使用条件运算符:

LabelCriteria = x => true ? "Cash" : " ";

这可能是因为常量折叠,编译器正在修改表达式,但是,因为条件是常量表达式 (true)。尝试在那里使用变量,看看会发生什么。

关于c# - 构建表达式树来表示 if-else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291443/

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