Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中:类似于flash脚本的表达式求值函数 副本: 另见:_C#_Eval - Fatal编程技术网

C# 在c中:类似于flash脚本的表达式求值函数 副本: 另见:

C# 在c中:类似于flash脚本的表达式求值函数 副本: 另见:,c#,eval,C#,Eval,如何计算表达式。也许像: int a=1; int b=3; int c=Eval("a+b"); 或 我觉得这很愚蠢。在c语言中有可能吗?不直接。C不包含运行时编译器。 Mono附带了一个函数来实现这一点。您可以获取代码,并使用CSharpCodeProvider编写一个Eval函数,将代码编译到内存程序集中,然后执行该代码 参见此示例源。我列举了我在本文中了解到的几种不同方法,包括各种.NET framework解决方案,如CodeDomProvider、DataBin

如何计算表达式。也许像:

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


我觉得这很愚蠢。在c语言中有可能吗?

不直接。C不包含运行时编译器。
Mono附带了一个函数来实现这一点。

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


参见此示例源。

我列举了我在本文中了解到的几种不同方法,包括各种.NET framework解决方案,如CodeDomProvider、DataBinder.Eval、DataTable.Compute、Document.InvokeScript等。

这是可行的,但它会生成一个新的程序集,因此,尽管您可以使用它来计算逻辑语句,您不能将其用于元编程。这将在C5中看到anders关于C未来的PDC2008演讲
int c=int.parse("1+3*(2+3)");