Question

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#?

Was it helpful?

Solution

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.

OTHER TIPS

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

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top