微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 c# 中的 If-Else 条件中添加 forloop?[CODEDOM]

如何解决如何在 c# 中的 If-Else 条件中添加 forloop?[CODEDOM]

如何在 Codedom 中执行以下代码

dt

我熟悉 CodeIterationStatement 和 CodeConditionStatement 但不知道如何执行。

解决方法

你想在循环内执行什么类型的语句或条件取决于需求。我想 if 语句里面应该有一个条件让我们通过例子来理解

int a=5;
if(a>1)
{
    for(int i=0;i<10;i++)
        {
        Console.WriteLine("{0}",i);
        }
}
,

这应该可以解决问题

        private CodeConditionStatement makeIfStatementWithLoop(CodeExpression conditionExpr,CodeExpression iterationLimit)
        {
            CodeConditionStatement ifStatement = new CodeConditionStatement();
            ifStatement.Condition = conditionExpr;
            CodeVariableDeclarationStatement iDeclaration = new CodeVariableDeclarationStatement(new CodeTypeReference(typeof(int)),"i");
            CodeVariableReferenceExpression iReference = new CodeVariableReferenceExpression(iDeclaration.Name);
            CodeIterationStatement loopStatement = new CodeIterationStatement();
            loopStatement.InitStatement = new CodeAssignStatement(iReference,new CodePrimitiveExpression(0));
            CodeAssignStatement incrementStatement = new CodeAssignStatement();
            incrementStatement.Left = iReference;
            incrementStatement.Right = new CodeBinaryOperatorExpression(iReference,CodeBinaryOperatorType.Add,new CodePrimitiveExpression(1));
            loopStatement.IncrementStatement = incrementStatement;
            loopStatement.TestExpression = new CodeBinaryOperatorExpression(iReference,CodeBinaryOperatorType.LessThan,iterationLimit);
            CodeVariableReferenceExpression consoleRef = new CodeVariableReferenceExpression("Console");
            CodeExpression[] args = new CodeExpression[] { iReference };
            CodeMethodInvokeExpression consoleWriteLineStmt = new CodeMethodInvokeExpression(consoleRef,"WriteLine",args);
            loopStatement.Statements.Add(consoleWriteLineStmt);
            ifStatement.TrueStatements.Add(loopStatement);
            return ifStatement;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。