c# - CodeDom 生成的代码中的额外括号

标签 c# .net codedom

我正在使用 CodeDom 生成稍后要编译的代码,并且我注意到某些结构会创建额外的括号集。虽然我知道它们不会影响任何东西,但它们看起来确实很奇怪。

执行此操作的代码示例是这样的:

new CodeConditionStatement(
  new CodeBinaryOperatorExpression(
    new CodePropertyReferenceExpression(new CodePropertySetValueReferenceExpression(), 
      "Length"),
    CodeBinaryOperatorType.GreaterThan,
    new CodePrimitiveExpression(strLength)
  ),
  new CodeThrowExceptionStatement(
    new CodeObjectCreateExpression(typeof(ArgumentException), 
    new CodePrimitiveExpression("The string is too long"), 
    new CodePrimitiveExpression("value"))
  )
)

这会生成以下代码段:

if ((value.Length > 50)) {
    throw new System.ArgumentException("The string is too long", "value");
}

同样,我知道额外的括号不会影响任何东西,但如果我做错了什么,我想知道:)

最佳答案

我的猜测是,CodeDom 的作者并不认为更简洁的代码的优势会比使用检测括号需求所需的宝贵 CPU 时间更重要。在其他一些情况下,可能确实需要它们。

关于c# - CodeDom 生成的代码中的额外括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6180370/

相关文章:

c# - 使用 CodeDom 指定类型别名

c# - 罗斯林-CodeDom : HowTo dynamically compile Code to Universal-Windows-Library

C# 复选框选中计数

c# - AudioGraph可以播放流吗?

c# - javascript参数字符长度限制?

c# - 如何在 LINQ 中按列表合并分组

c# - 重构我的代码 : Conditions based on different variables

c# - 使用Application.Exit退出应用程序而不显示GUI

c# - 使用dapper时sql放在哪里?

c# - 通过 CodeDom 生成非托管 C++