c#-初学者希望在运行时从包含数学函数的字符串中添加代码

c#-初学者希望在运行时从包含数学函数的字符串中添加代码,c#,C#,高中时,我在visual C#上学习了基本算法,并编写了一个简单的代码,在给定的限制内对数学函数进行数值积分 我希望能够在不实际编辑代码的情况下更改代码集成的功能,所以我在谷歌上搜索了一会儿,找到了很多关于如何操作的文章。我很想理解它,但问题是我不能理解那里写的任何东西,因为它太超出我的水平了 我需要一个代码,可以在运行时从包含数学函数的字符串中添加代码,可以接受变量,log,ln,powers,sin,cos,tan,也可能是pi和e,它们以友好的“复制粘贴”格式准备好,然后是关于粘贴到何处以

高中时,我在visual C#上学习了基本算法,并编写了一个简单的代码,在给定的限制内对数学函数进行数值积分

我希望能够在不实际编辑代码的情况下更改代码集成的功能,所以我在谷歌上搜索了一会儿,找到了很多关于如何操作的文章。我很想理解它,但问题是我不能理解那里写的任何东西,因为它太超出我的水平了

我需要一个代码,可以在运行时从包含数学函数的字符串中添加代码,可以接受变量,
log
ln
powers
sin
cos
tan
,也可能是
pi
e
,它们以友好的“复制粘贴”格式准备好,然后是关于粘贴到何处以及如何将其连接到我的代码的说明。澄清:

我想采取这样的措施:

string s = "Sqrt(ln(1 + x ^ 2))";
这样做:

double x = 0;
double y = Math.Sqrt(Math.Log(1 + Math.Pow(x,2)));

我知道这是一个非常烦人的请求,如果这不是一个合适的地方,我会提前道歉。

在C#这样的语言中,这实际上是相当困难的,因为它是静态编译的


一个好的替代方法是使用表达式解析库,例如。这个库允许您创建表达式(字符串),解析它,并提取结果。

ok您需要一个解析树。你可以从这个开始,因为这不是初学者的问题@Reed Copsey为您提供了最佳选择,除非您想先学习反射(Emit)、DLR或如何编写自己的解析器和语法。这些都是有趣的东西,但在你开始之前,可能还有一些更简单的问题需要解决。我可以给你一堆代码,这对你来说意味着你已经找到的东西一样少。我确实在这个问题上结结巴巴的。。。事情它看起来像我在找的东西。我知道这就像是一个扩展,添加了这些表达式,对吗?我该如何实现这一点?@Izabo项目页面上有文档和示例,您可以尝试,等等。他们的手册将指导您如何实现这一点。