【发布时间】:2014-05-22 21:11:25
【问题描述】:
我正在根据一些业务规则生成一个表达式,它可能看起来像这样
0 > 1
12 < 14
"abc" != "xyz"
90 >= 12
现在我必须根据该条件进行某些实现。例如:
string condition = "0 =1";
if(condition)
{
// do something because condition is passed
}
else
{
// do something because condition is failed
}
我已尝试对动态关键字执行相同的操作,但仍然无法正常工作。 有什么解决办法吗?
编辑:1 修改代码
string _initExp = "1";
string _validateCondition = "== 0";
string strcondition = _initExp + _validateCondition;
bool _condition = Convert.ToBoolean(strcondition); // Error statement
if (_condition)
{
}
【问题讨论】:
-
为此,您最好的选择可能是使用最近发布的
Roslyn C# compiler。这将允许您将任何 C# 代码作为字符串解析和执行。 -
strcondition应该是boolean value in string form。 -
阅读此内容:msdn.microsoft.com/en-us/library/86hw82a3(v=vs.110).aspx - 如示例所示,您无法将字符串
1 == 0转换为bool值。 -
@Zerotoinfinite 试试这个,social.msdn.microsoft.com/Forums/vstudio/en-US/…
标签: c# if-statement dynamic