4

重复:如何动态评估 C# 表达式?

另请参阅:C# eval 等价物?

如何评估表达式。也许像:

int a=1;
int b=3;
int c=Eval("a+b");

或者

int c=int.parse("1+3*(2+3)");

这对我来说似乎很愚蠢。在c#中可能吗?

4

3 回答 3

7

您可以获取代码,并使用 CSharpCodeProvider 编写一个 Eval 函数,该函数实际上将您的代码编译到内存中的程序集中,然后执行该代码。

有关示例源,请参阅此CodeProject 文章

于 2009-02-11T00:17:36.200 回答
2

不是直接的。C# 不包含运行时编译器。有一个附加到 Mono 的开源项目可以做到这一点。

于 2009-02-11T00:16:29.213 回答
0

我在“如何动态评估 C# 表达式”的答案中列举了几种不同的方法,其中包括各种 .NET 框架解决方案,例如 CodeDomProvider、DataBinder.Eval、DataTable.Compute、Document.InvokeScript 等。

于 2018-10-07T05:54:19.307 回答