【发布时间】:2018-02-20 13:22:59
【问题描述】:
值来自xml,用户只声明要做什么条件。
string condition ="25<10";
现在,我想在 if 条件下使用它:
if(condition)
{
//my condition
}
我收到了这个错误
Cannot implicitly convert type string to bool
谁能告诉我怎么做?
【问题讨论】:
-
当然不能直接将字符串转换为布尔值(if-condition 需要布尔值)。您需要使用数字比较运算符来执行此操作(
if (25 < 10)有效,但if ("25 < 10")无效)。 -
为什么用户没有指定“false”或“no”?我怀疑您的实际表达要复杂得多,有效的答案取决于复杂程度。请参阅@L.B 的评论以了解一种方式,但根据实际语法,它可能不够甚至不正确。坦率地说,如果您在弄清楚如何处理以错误方向开始的表达式之前就决定了语法,您可能会发现您已经允许您必须自己实现支持的语法。
-
表达式生成器的一个很好的例子是Kendar Expression builder,您可以在其中创建条件,这些条件是返回类型为 bool 的特定操作。
-
我认为this question 可以解决您的问题,将字符串更改为表达式树。