开发者

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

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 li开发者_开发百科ke to extend it a bit for my own benefit. Thank you very much for any help.


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.


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();
        }
    }
}


Try this it uses CodeDOM to create a calculator

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜