#c# #.net #codedom
#c# #.net #codedom
Вопрос:
Я не могу понять, как вызвать и использовать метод в операторе if через CodeDom. Кто-нибудь уже делал что-то подобное?
На самом деле, параметры, которые представляют «истинное утверждение» (в CodeConditionStatement), требуют параметров ‘statement’, но единственный известный мне способ вызвать метод — это CodeMethodInvokeExpression, который является ‘выражением’, а не ‘заявлением’, поэтому он выдает мне ошибку для этого.
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.CodeMethodInvokeExpression»в»системе.CodeDom.CodeStatement'».
Комментарии:
1. Я предполагаю, что вы хотите использовать CodeExpressionStatement вместо CodeMethodInvokeExpression …
2. Насколько да! Это просто решает мою проблему. Спасибо. Я вроде как новичок во всем этом.