3

Possible Duplicates:
C# eval equivalent?
How can I evaluate a C# expression dynamically?

How can I evaluate a valid C# code and get results inside a compiled program (dynamically)? I know this is not very clear, i'll try to show that with a code snippet:

Visual C# 2010.

double x = 3.0;//this is function argument, we'll take 3
string str = "Math.Pow(x,2)+2*x+4";//value with written function in C#,equals: x^2+2x+4
double y = eval(str);
/* this is the idea! something like JS.I want to make string parsed into parameter,i.e
y=19 - this is what double y should became after eval(str) */

Hope you got the idea.

Thanks.

Community
  • 1
  • 1

1 Answers1

1

No, LINQ won't do this for you.

The closest you can easily get at the moment is to use CSharpCodeProvider which allows you to compile a whole assembly - but you'll need to wrap your expression in all the other source code required to make it a complete class.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194