重复:如何动态评估 C# 表达式?
另请参阅:C# eval 等价物?如何评估表达式。也许像:
int a=1;
int b=3;
int c=Eval("a+b");
或者
int c=int.parse("1+3*(2+3)");
这对我来说似乎很愚蠢。在c#中可能吗?
如何评估表达式。也许像:
int a=1;
int b=3;
int c=Eval("a+b");
或者
int c=int.parse("1+3*(2+3)");
这对我来说似乎很愚蠢。在c#中可能吗?
您可以获取代码,并使用 CSharpCodeProvider 编写一个 Eval 函数,该函数实际上将您的代码编译到内存中的程序集中,然后执行该代码。
有关示例源,请参阅此CodeProject 文章。
不是直接的。C# 不包含运行时编译器。有一个附加到 Mono 的开源项目可以做到这一点。
我在“如何动态评估 C# 表达式”的答案中列举了几种不同的方法,其中包括各种 .NET 框架解决方案,例如 CodeDomProvider、DataBinder.Eval、DataTable.Compute、Document.InvokeScript 等。