PDA

View Full Version : [C#] Valutare espressioni stringa


RobyG_08
18-07-2008, 13:46
Ciao a tutti,

qualcuno sa se c'è un modo per valutare un'espressione passata come stringa?
Per renderla semplice, poniamo il caso che io abbia una situazione del genere:

int a = 2;
int b = 6;
string exp = "Math.Max(a, b)";

esiste una funzione che passata la stringa exp riesca a valutarne il contenuto e restituirmi il risultato?

Grazie

^TiGeRShArK^
18-07-2008, 13:50
http://www.codeproject.com/KB/cs/evalcscode.aspx

RobyG_08
18-07-2008, 13:55
Ottimo! Grazie :D

gugoXX
18-07-2008, 13:56
Ciao a tutti,

qualcuno sa se c'è un modo per valutare un'espressione passata come stringa?
Per renderla semplice, poniamo il caso che io abbia una situazione del genere:

int a = 2;
int b = 6;
string exp = "Math.Max(a, b)";

esiste una funzione che passata la stringa exp riesca a valutarne il contenuto e restituirmi il risultato?

Grazie


Con il C# e' possibile compilare al volo del codice presente su una stringa.
Per ottenere il risultato puoi passare attraverso questo concetto.
P.es. puoi compilare un pezzo di codice che si suppone essere una funzione (Come questa), ottenere come risultato un delegate da richiamare proprio come la funzione che hai scritto nella stringa.

Oppure puoi usare un pezzo di codice che assomiglia a cosa vuoi, gia' scritto da altri.

http://www.codeproject.com/KB/cs/runtime_eval.aspx

Se la tua funzione deve essere parametrica (come il tuo esempio) e' un po' piu' complesso, e non penso che tu possa usare questo esempio.
Ma a partire da questo si puo' fare qualcosa.