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

有很多算法可以计算表达式,例如:


通过递归下降

调车场算法

波兰语反符号

是否可以使用C#.net反射或其他现代.net技术评估任何数学表达式?


守候你守候我
浏览 436回答 3
3回答

jeck猫

尽管使用编译器服务是一种简单而有效的解决方案,但是如果用户输入该表达式,则会引起严重的安全问题,因为它实际上可以执行任何操作。还有另一个非常简单的解决方案,它更安全:利用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);
打开App,查看更多内容
随时随地看视频慕课网APP