tags:

views:

815

answers:

3

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

+2  A: 

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

Think Before Coding
+3  A: 

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.

joshperry
This works, but it produces a new assembly, so while you can use it to eval logical statements, you can't use it for metaprogramming. This is coming in C#5 (see anders's PDC2008 talk on the future of C#)
Orion Edwards