C#:如何将数学函数从文本框传递给函数

use*_*382 0 c# function string-parsing

我有一个文本框,我想读取用户输入的数学函数(例如:Math.Sqrt(x)等).

我一直用于控制台测试功能的代码是

    static double f(double x)
    {
        double f;
        f = Math.Sqrt(x);
        return f;
    }
Run Code Online (Sandbox Code Playgroud)

我不确定如何修改它:我是否读取字符串中的文本框内容,并将该字符串作为第二个参数添加到f函数中(static double f(double x,string s)?我应该解析什么类型的解析适用于字符串?

Uwe*_*eim 5

几个公式解析器在那里,你可以使用.

基本上你需要某人/某事来评估你的公式.

我在自己的项目中成功使用了这个.它允许调用它

var ev = 
    new Eval3.Evaluator(
        Eval3.eParserSyntax.c,/*caseSensitive*/ 
        false);

MessageBox.Show(ev.Parse("1+2+3").value.ToString());
Run Code Online (Sandbox Code Playgroud)

建议使用的是C#代码动态编译,因为它将每个编译的代码添加到您的应用程序域("app domain"),并且没有选项可以再次卸载它.(如我错了请纠正我).