我有点难以尝试生成如下所示的复杂 if 语句
if (class1.Property == class2.Property || (class3.Property && class4.Property))
{
//do something
}
else
{
//do something else
}
通过使用 CodeConditionStatement 类,我可以生成上面的第一个条件,但我似乎找不到添加第二个条件的方法,尤其是使用所需的括号和在运行时评估的方式?
注意:我不想使用 CodeSnippetExpression 类。
有什么想法吗?
提前致谢。
最佳答案
将条件分成 3 个二进制表达式:(class1.Property == class2.Property || (class3.Property || class4.Property)
class3.Property || class4.Property
- 左侧和右侧带有 CodePropertyReferenceExpression 的 CodeBinaryOperatorExpressionclass1.Property == class2.Property
- 左右两侧带有 CodePropertyReferenceExpression 的 CodeBinaryOperatorExpression- 最后
#2 || #1
- CodeBinaryOperatorExpression #2 在左边,#1 在右边
关于c# - Codedom生成复杂的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269176/