Программа создания выражений - C # - PullRequest
0 голосов
/ 23 марта 2011

Мне нужно написать программу на C #, которая облегчает ввод логических выражений.

Существует набор операторов, который включает>, <,> =, <=, =,! = Есть AND,ИЛИ и круглые скобки. </p>

Будет меню, в котором пользователь сможет выбирать операторов и вводить значения для сравнения, чтобы результат был примерно таким:

(A > 5) OR (B = 10 AND C != 50)

Как бы вы предложилисделать так, чтобы пользователь всегда вводил правильные значения.Знаете ли вы какие-либо статьи об этом?

Ответы [ 6 ]

1 голос
/ 23 марта 2011

Похоже, вы пытаетесь создать приложение, которое позволит пользователям создавать деревья выражений (с некоторыми ограничениями).

Вот действительно хорошая статья Чарли Калверта, описывающая, что такое деревья выражений , как вы можете их использовать и как их строить.

Надеюсь, это заставит вас двигаться в правильном направлении.

1 голос
/ 23 марта 2011

Возможно, вам стоит взглянуть на реализацию RDC.

http://en.wikipedia.org/wiki/Recursive_descent_parser

В Интернете есть множество статей, просто Google.

0 голосов
/ 23 марта 2011

Может быть, перегрузки оператора - это то, что вы ищете ???

Что-то вроде:

internal class Person
{
    public int Age { get; set; }

    public static bool operator >(Person thisPerson, int compareValue)
    {
        return thisPerson.Age > compareValue;
    }

    public static bool operator <(Person thisPerson, int compareValue)
    {
        return thisPerson.Age < compareValue;
    }

}
0 голосов
/ 23 марта 2011

В прошлом я использовал механизм правил действий Windows Workflow. Он предоставляет вам графический интерфейс в стиле Excel / Access для определения правил на основе объектов, но может предложить гораздо больше, чем вам нужно.
Взгляните здесь для начала.

0 голосов
/ 23 марта 2011

Эта серия может представлять интерес

http://blogs.msdn.com/b/ericlippert/archive/2010/04/26/every-program-there-is-part-one.aspx

0 голосов
/ 23 марта 2011

Может быть, Dynamic LINQ может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...