Is there a method that will evaluate a string and produce an integer (assuming the string is an equation) in C#

ⅰ亾dé卋堺 提交于 2019-11-28 12:23:37

问题


Okay, I know that in Python, say you had a string called

strExpression and it's value was "1+2-(3*5)"

There is a python method (function, sorry I get the terms confused) that will evaluate that string and return a numerical integer value (in this case, it should return -12. I don't recall the python syntax because I did it a while ago in a course (and then I broke my arm and had to quit because I couldn't type), but hopefully someone knows what I mean

Is there a way to do this in C#

I am only learning, and am creating a simple calculator program, and I have made a basic one that allows you to add to the previous number, but I would like to extend it a bit for my own benefit. Thank you very much for any help.


回答1:


There isn't exactly such a method in C#, but you can easily write one using the compiler at runtime to evaluate the expression. Check out CSharpCodeProvider.




回答2:


You can use the Microsoft.JScript which exposes all client side javascript functions in 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();
        }
    }
}



回答3:


Try this it uses CodeDOM to create a calculator



来源:https://stackoverflow.com/questions/4384837/is-there-a-method-that-will-evaluate-a-string-and-produce-an-integer-assuming-t

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!