如何在CodeConditionStatement的CodeStatement中调用类似Console.WriteLine的方法?

时间:2019-03-28 20:07:28

标签: c# .net codedom

我不知道如何通过CodeDOM在if语句中调用和使用方法。有人已经做过类似的事情吗?

实际上,代表“ true语句”的参数(在CodeConditionStatement中)需要“ statement”参数,但是我知道调用方法的唯一方法是CodeMethodInvokeExpression,它是“ expression”而不是“ statement”,因此这给了我一个错误。

CodeConditionStatement ifPath = new CodeConditionStatement(
                // condition: System.IO.Path.Exit(path)
                new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(method.Parameters[1].Name), "Path.Exist", new CodeExpression[] { new CodeVariableReferenceExpression("path") }),
                // true:
                new CodeStatement[] {
                    new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(method.Parameters[0].Name), "Console.WriteLine", new CodeExpression[] { new CodePrimitiveExpression("Saisir mot de passe") })
                },
                // false:
                new CodeStatement[] { new CodeCommentStatement("Else block. If condition is false, execute these statements.") }
            );

当前,它只是发出一个错误的广告,说“无法在'System.CodeDom.CodeStatement'中隐式转换'System.CodeDom.CodeMethodInvokeExpression'类型”。

0 个答案:

没有答案