在c#中:表达式评估函数就像flash脚本一样

时间:2009-02-11 00:10:52

标签: c# eval

重复:How can I evaluate a C# expression dynamically?

另见:C# eval equivalent?

如何评估表达。也许像:

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

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

这对我来说似乎很愚蠢。是否有可能在c#?

3 个答案:

答案 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等。