in c#: expression evaluation function like flash s

2019-01-28 04:48发布

问题:

Duplicate of: How can I evaluate a C# expression dynamically?

See also: C# eval equivalent?

How to evaluate expression. Maybe like:

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

or

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

This seems stupid to me. is it possible in c#?

回答1:

You can take code, and using the CSharpCodeProvider write an Eval function that actually compiles your code into an in-memory assembly and then executes that code.

See this CodeProject article for sample source.



回答2:

Not directly. C# contains no runtime compiler. There is an open source project attached to Mono that will do this.



回答3:

I enumerate several different approaches that I am aware of in this answer to "How can I evaluate a C# expression dynamically" which include various .NET framework solutions such as CodeDomProvider, DataBinder.Eval, DataTable.Compute, Document.InvokeScript, and more.



标签: c# eval