2010-11-12 10 views
3

Doublons possibles:
C# eval equivalent?
How can I evaluate a C# expression dynamically?C# .NET 4.0 expression eval

Comment puis-je évaluer un code valide C# et obtenir des résultats dans un programme compilé (dynamique)? Je sais que ce n'est pas très clair, je vais essayer de montrer que, avec un extrait de code:

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) */ 

espère que vous avez l'idée.

Merci.

+0

et http://stackoverflow.com/questions/1024070/c-eval-support –

Répondre

1

Non, LINQ ne le fera pas pour vous. Le plus proche que vous pouvez facilement obtenir en ce moment est d'utiliser CSharpCodeProvider qui vous permet de compiler un ensemble entier - mais vous devrez envelopper votre expression dans tous les autres codes source nécessaires pour en faire une classe complète.