如:string str="1<2";如何转换成bool类型的true
也许确实不能转换,但有没有等效的方法呢?即有没有这样一种方法,我传入string类型的参数,然后那个方法放回bool类型的值,例如:传入参数“1<2”,返回true。求高人指点...问题补充:string类型的参数其实就是一个逻辑表达式,最复杂的情况就是[ a>b || (c>d&&e<f) ] || g>h
传入参数(12||1<2)时会报错
追答需要添加引用:Microsoft.JScript 和Microsoft.Vsa
public object EvalExpress(string sExpression)
{
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
return Microsoft.JScript.Eval.JScriptEvaluate(sExpression, ve);
}
测试代码:
object objResult = EvalExpress("(12||1<2)");
Convert.ToBoolean(objResult.ToString());
测试通过
测试通过
s= (12||1<2)的时候就报错了
追答这个不是一个表达式好吧,你举例时没有说有这种情况,还有哪种,一起说了吧,这种可以拆分。关键是有没有这么做的必要?目的是什么?可不可以用其它的方式来解决
追问表达式最复杂的情况就是:[ a>b || (c>d&&eh,这个表达式由用户设置,保持在数据库中nvarchar(max)类型,包含中括号、括号、大于号、小于号、||、&&,其中英文字母是double类型的变量。这么做是有必要的,没有其他办法只能这样做,你能帮助我吗
追答这个.....真不是一个简单的工作!看看这个对你有帮助没有:
http://www.codeproject.com/Articles/246374/A-Calculation-Engine-for-NET