0

我正在尝试使用 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

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

4

1 回答 1

2

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

使用CodeAssignStatement而不是 CodeBinaryOperatorExpression。

inputmethod.Statements.Add(new CodeAssignStatement(
    new CodeVariableReferenceExpression("ColA"),
    new CodeArrayIndexerExpression(
        new CodeVariableReferenceExpression("inputs"),
        new CodePrimitiveExpression(0))));
于 2013-05-12T09:05:16.657 回答