c# - Codedom生成复杂的if语句

标签 c# code-generation codedom

我有点难以尝试生成如下所示的复杂 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)

  1. class3.Property || class4.Property - 左侧和右侧带有 CodePropertyReferenceExpression 的 CodeBinaryOperatorExpression
  2. class1.Property == class2.Property - 左右两侧带有 CodePropertyReferenceExpression 的 CodeBinaryOperatorExpression
  3. 最后 #2 || #1 - CodeBinaryOperatorExpression #2 在左边,#1 在右边

关于c# - Codedom生成复杂的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269176/

相关文章:

c# - TextBox.Clear() 或 TextBox.Text = string.Empty

c# - 如何在 MS Word 中以编辑模式启动 template.dot 文件

javascript - 为什么 GWT 和 Script# 风格的框架没有成为主流?

c# - 为什么 C# 编译器甚至不警告无限递归?

c++ - 如何将函数指针作为参数传递给重载的成员函数

Ruby 中的 Java 源代码解析器

c# - 防止 CodeDom 拆分大字符串

asp.net - 无法获取要构建的 CodeDom dll,程序集不匹配

codedom - 如何通过CodeDOM或Linq表达式动态生成if条件 block ?

c# - 自定义角色提供者 - DbContext 处置