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

本文关键字:函数 文本 | 更新日期: 2023-09-27 18:33:32

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

我一直用于控制台测试函数的代码是

    static double f(double x)
    {
        double f;
        f = Math.Sqrt(x);
        return f;
    }

不确定如何修改它:我是否读取字符串中的文本框内容,并将该字符串作为第二个参数添加到 f 函数( 静态双精度 f(双 x,字符串 s)? 我应该对字符串应用哪种类型的解析?

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

您可以使用

几种公式解析器。

基本上,您需要某人/某物来评估您的公式。

我在自己的项目中成功地使用了这个。它允许像

var ev = 
    new Eval3.Evaluator(
        Eval3.eParserSyntax.c,/*caseSensitive*/ 
        false);
MessageBox.Show(ev.Parse("1+2+3").value.ToString());

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

另一个计算器:http://csharp-eval.com/

如果您对如何从文本框中获取文本并使用值执行某些操作感兴趣,以下代码将为您执行此操作。如果你想在文本框中输入一个函数 - sqrt(40),你应该检查这个项目:http://www.codeproject.com/Articles/23061/MathParser-Math-Formula-Parser

http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.aspx

static double f(Textbox tb)
{
    double f;
    double x = Double.Parse(tb.Text);
    f = Math.Sqrt(x);
    return f;
}

您可以执行任意代码,但不容易。对于常规代码,必须创建一个包装类并将代码插入到函数中。

看看 http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/6a783cc4-bb54-4fec-b504-f9b1ed786b54/