2010-12-08 37 views
0

Bon, je sais que Python, dites-vous eu une chaîne appeléeY at-il une méthode qui évaluera une chaîne et produire un entier (en supposant que la chaîne est une équation) en C#

strExpression et sa valeur était " 1 + 2- (3 * 5) "

Il existe une méthode python (fonction, désolé je reçois les termes confus) qui évaluera cette chaîne et retournera une valeur numérique entière (dans ce cas, elle devrait retourner -12 Je ne me souviens pas de la syntaxe python parce que je l'ai fait il y a un moment dans un cours (et puis je me suis cassé le bras et j'ai dû quitter parce que je ne pouvais pas taper), mais heureusement quelqu'un sait ce que je veux dire.Y a-t-il un moyen de le faire en C#

Je ne fais qu'apprentissage, et je suis en train de créer un programme de calculatrice simple, et j'en ai fait un de base qui vous permet d'ajouter au nombre précédent, mais je voudrais étendre c'est un peu pour mon propre bénéfice. Merci beaucoup pour toute aide.

+0

double question: http://stackoverflow.com/questions/333737/c-evaluating-string-342-yield -int-18 – Peter

+0

duplication possible de [Comment évaluer une expression C# dynamiquement?] (http://stackoverflow.com/questions/53844/how-can-i-evaluate-ac-sharp-expression-dynamically) – t0mm13b

Répondre

0

Essayez this il utilise CodeDOM pour créer une calculatrice

1

Il n'y a pas exactement une telle méthode en C#, mais vous pouvez facilement écrire un utilisant le compilateur lors de l'exécution pour évaluer l'expression. Découvrez CSharpCodeProvider.

1

Vous pouvez utiliser le Microsoft.JScript qui expose tout javascript côté client fonctions en C#

using System; 
using Microsoft.JScript; 
using Microsoft.JScript.Vsa; 

namespace JustTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      object value = Eval.JScriptEvaluate("1+2-(3*5)", VsaEngine.CreateEngine()); 
      Console.Write(value); 
      Console.ReadLine(); 
     } 
    } 
}