我不知道如何通过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'类型”。