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)? 我应该对字符串应用哪种类型的解析?
您可以使用
几种公式解析器。
基本上,您需要某人/某物来评估您的公式。
我在自己的项目中成功地使用了这个。它允许像
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/