|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2008
Città: Provincia Torino
Messaggi: 760
|
[C#] Valutare espressioni stringa
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
__________________
Ho comprato serenamente da: Zio_Igna, gwwmas, andreabarbuscia, marczxc, turbofantasyfan |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
__________________
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2008
Città: Provincia Torino
Messaggi: 760
|
Ottimo! Grazie
__________________
Ho comprato serenamente da: Zio_Igna, gwwmas, andreabarbuscia, marczxc, turbofantasyfan |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
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.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:06.




















