2013-05-12 2 views
0

코드 롬을 사용하여 일부 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

생성 된 출력에서 ​​브래킷을 제거하는 방법?

+0

마치 생성 된 라인이 메소드 호출의 일부인 것처럼 보입니다. 그것은 inputMethod가 무엇입니까? –

+0

해당 CodeMemberMethod ... – deostroll

답변

2

대괄호는 BinaryOperatorExpression의 일부입니다. 그들을 제거하지 마십시오.

CodeBinaryOperatorExpression 대신 CodeAssignStatement을 사용하십시오.

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