C# 字符串中的动态if条件

C# 字符串中的动态if条件,c#,if-statement,dynamic,C#,If Statement,Dynamic,我正在根据一些业务规则生成一个表达式,它可能是这样的 0 > 1 12 < 14 "abc" != "xyz" 90 >= 12 我尝试过用dynamic关键字做同样的事情,但它仍然不起作用。 有工作吗 编辑:1 修改代码 string _initExp = "1"; string _validateCondition = "== 0"; string strcondition = _initExp + _validateCondition; bool _condition

我正在根据一些业务规则生成一个表达式,它可能是这样的

0 > 1
12 < 14
"abc" != "xyz"
90 >= 12
我尝试过用dynamic关键字做同样的事情,但它仍然不起作用。 有工作吗

编辑:1 修改代码

string _initExp = "1";
string _validateCondition = "== 0";
string strcondition = _initExp + _validateCondition;
bool _condition = Convert.ToBoolean(strcondition); // Error statement

if (_condition)
{

}

为什么不直接使用
bool

bool condition = 0==1;
if(condition)
{
   // do something because condition is passed
}
else
{ 
   // do something because condition is failed
}
您还可以简化以下代码:

bool condition = 0==1;
if(condition)
{
   return true;
}
else
{ 
   return false;
}
致:

或用于自定义返回值

bool condition = 0==1;
return condition ? "yes" : "no";

为什么不直接使用
bool

bool condition = 0==1;
if(condition)
{
   // do something because condition is passed
}
else
{ 
   // do something because condition is failed
}
您还可以简化以下代码:

bool condition = 0==1;
if(condition)
{
   return true;
}
else
{ 
   return false;
}
致:

或用于自定义返回值

bool condition = 0==1;
return condition ? "yes" : "no";

为此,您最好的选择可能是使用最近发布的版本。这将允许您将任何一段C代码作为字符串进行解析和执行。
strcondition
应该是字符串形式的
boolean值。
。请阅读以下内容:-示例表明,您无法将字符串
1==0
转换为
bool
值。@zerotointe,为此,您最好的选择可能是使用最近发布的版本。这将允许您将任何一段C代码作为字符串进行解析和执行。
strcondition
应该是字符串形式的
boolean值。
。请阅读以下内容:-示例表明,您无法将字符串
1==0
转换为
bool
值。@zerotoinite尝试此操作,
返回条件就足够了。为什么要再次检查。或者你甚至可以使用某种lambda表达式。@Bharadwaj,谢谢。我无法正确地表达自己。我已经更新了我的答案。希望更好。我得到的是字符串格式的条件,例如:“0==1”,当我使用下面的代码将其转换为bool时,它不起作用,可能是因为它无法将此字符串解析为bool bool(u condition=convert.ToBoolean(strcondition)@Zerotoinfinite,我认为这会有帮助:
返回条件就足够了。为什么要再次检查。或者你甚至可以使用某种lambda表达式。@Bharadwaj,谢谢。我无法正确地表达自己。我已经更新了我的答案。希望更好。我得到的是字符串格式的条件,例如:“0==1”,当我使用下面的代码将其转换为bool时,它不起作用,可能是因为它无法将此字符串解析为bool bool _condition=convert.ToBoolean(strcondition)@Zerotoinfinite,我认为这将有所帮助: