Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exécuter contenu d'une variable comme une commande

1 réponse
Avatar
SL3News
Bonjour,
J'ai une commande se trouvant dans une variable.
Exemple :
string maCommand = "int i = 0, y = 2*i + 3;";

Je voudrais pouvoir exécuter le contenu de maCommand comme si j'avais tapé
directement l'instruction suivante :
int i = 0, y = 2*i + 3;

&maCommand; // par exemple, cette instruction ne marche pas

Quelqu'un a-t-il une solution?

Merci d'avance pour vos contributions.

1 réponse

Avatar
Gilles TOURREAU
Le Fri, 14 Sep 2007 18:40:30 +0200, SL3News a écrit:

Bonjour,
J'ai une commande se trouvant dans une variable.
Exemple :
string maCommand = "int i = 0, y = 2*i + 3;";

Je voudrais pouvoir exécuter le contenu de maCommand comme si j'avais
tapé
directement l'instruction suivante :
int i = 0, y = 2*i + 3;

&maCommand; // par exemple, cette instruction ne marche pas

Quelqu'un a-t-il une solution?

Merci d'avance pour vos contributions.





Il n'existe pas de mécanisme d'évaluation directe sous .NET...

Cependant il y a 2 possibilité pour produire un équivalent :
- Utiliser le CodeDOM de .NET pour générer un assembly et le compiler en
mémoire (solution simple, un peu lourde)
- Utiliser l'objet DynamicMethod de l'espace de nom System.Reflection.Emit
pour générer du code (solution complexe nécessite la connaissance du MSIL,
mais optimisé).

La 2ème méthode possède aussi un inconvénient dans votre cas, vous devez
analyser votre chaine pour savoir quel type de code à générer...
Tandis que la 1ère méthode possède une classe : CodeSnippetCompileUnit
auquel vous pouvez injecter directement une chaine de caractère à
compiler...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr