如何评估表达。也许像:
int a=1;
int b=3;
int c=Eval("a+b");
或
int c=int.parse("1+3*(2+3)");
这对我来说似乎很愚蠢。是否有可能在c#?
答案 0 :(得分:7)
您可以获取代码,并使用CSharpCodeProvider编写一个Eval函数,该函数实际将您的代码编译为内存中的程序集,然后执行该代码。
请参阅此CodeProject article了解示例来源。
答案 1 :(得分:2)
不直接。 C#不包含运行时编译器。 Mono附加an open source project即可。
答案 2 :(得分:0)
在此answer to "How can I evaluate a C# expression dynamically"中,我列举了几种不同的方法,其中包括各种.NET框架解决方案,例如CodeDomProvider,DataBinder.Eval,DataTable.Compute,Document.InvokeScript等。