为了账号安全,请及时绑定邮箱和手机立即绑定

评估数学表达式的最佳和最短方法

评估数学表达式的最佳和最短方法

守候你守候我 2019-10-21 09:27:13
有很多算法可以计算表达式,例如:通过递归下降调车场算法波兰语反符号是否可以使用C#.net反射或其他现代.net技术评估任何数学表达式?
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

尽管使用编译器服务是一种简单而有效的解决方案,但是如果用户输入该表达式,则会引起严重的安全问题,因为它实际上可以执行任何操作。


还有另一个非常简单的解决方案,它更安全:利用JScript Eval函数。您只需要按照以下步骤操作:


创建一个名为JsMath.js的js文件:


class JsMath

{

    static function Eval(expression : String) : double

    {

        return eval(expression);

    };

}

编译成一个类库:


jsc /t:library JsMath.js

在您的C#项目中引用JsMath库,并像这样使用它:


double result = JsMath.Eval(expression);


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 404 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信