Есть ли метод, который будет оценивать строку и производить целое число (предполагая, что строка является уравнением) в C # - PullRequest
0 голосов
/ 08 декабря 2010

Хорошо, я знаю, что в Python, скажем, у вас есть строка с именем

strExpression, и ее значение было "1 + 2- (3 * 5)"

Существует метод Python(функция, извините, я запутался в терминах), которая будет оценивать эту строку и возвращать числовое целочисленное значение (в этом случае оно должно возвращать -12. Я не помню синтаксис python, потому что я делал это некоторое время назад в курсе(а потом я сломал руку и вынужден был уйти, потому что не мог печатать), но, надеюсь, кто-то знает, что я имею в виду

Есть ли способ сделать это в C #

Я толькоя учусь и создаю простую калькуляторную программу, и я сделал базовую программу, которая позволит вам добавить к предыдущему номеру, но я бы хотел немного расширить его для своей выгоды. Большое спасибо за любую помощь.

Ответы [ 3 ]

1 голос
/ 08 декабря 2010

В C # такого метода нет, но вы можете легко написать его, используя компилятор во время выполнения для оценки выражения.Выезд CSharpCodeProvider.

1 голос
/ 08 декабря 2010

Вы можете использовать Microsoft.JScript, который предоставляет все функции JavaScript на стороне клиента в 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();
        }
    }
}
0 голосов
/ 08 декабря 2010

Попробуйте это он использует CodeDOM для создания калькулятора

...