如何避免生成的方法语句中出现括号

时间:2013-05-12 08:42:29

标签: c# codedom

我在尝试使用codedom生成一些c#代码时尝试执行assign语句。

以下是我写的陈述:

inputmethod.Name = "CaptureInput";
inputmethod.Attributes = MemberAttributes.Public | MemberAttributes.Final;
inputmethod.Parameters.Add(
    new CodeParameterDeclarationExpression(typeof(string[]), "inputs"));

inputmethod.Statements.Add(
    new CodeBinaryOperatorExpression(
            new CodePropertyReferenceExpression(
                new CodeThisReferenceExpression(), "ColA")
            , CodeBinaryOperatorType.Assign
            , new CodeArrayIndexerExpression(
            new CodeVariableReferenceExpression("inputs"),
            new CodePrimitiveExpression(0))));

当它生成时,我得到的行如下:

(this.ColA = input [0]);

编译器发现上述行CS0201

的错误

如何删除生成的输出中的括号?

1 个答案:

答案 0 :(得分:2)

括号是BinaryOperatorExpression的一部分。不要删除它们。

使用CodeAssignStatement代替CodeBinaryOperatorExpression。

inputmethod.Statements.Add(new CodeAssignStatement(
    new CodeVariableReferenceExpression("ColA"),
    new CodeArrayIndexerExpression(
        new CodeVariableReferenceExpression("inputs"),
        new CodePrimitiveExpression(0))));