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

本文关键字:语句 方法 何避免 | 更新日期: 2023-09-27 18:13:06

我试图做一个分配语句,同时试图使用codedom生成一些c#代码。

下面是我写的语句:

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

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

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

括号是binaryoperatoreexpression的一部分。

使用CodeAssignStatement代替codebinaryoperatoreexpression

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