Числовые выражения, введенные пользователем в C#

В этом примере показан один способ оценки математических выражений, введенных пользователем во время выполнения.

Введите числовое выражение, включающее x и y в верхнем текстовом поле. Затем введите значения для x и y в нижних текстовых полях и нажмите кнопку «Оценить», чтобы программа оценивала выражение.

Программа выполняет следующий код, когда вы нажимаете кнопку «Оценить».

Сначала код состоит из класса, который включает в себя одну функцию, содержащую выражение, введенное пользователем. Результат выглядит примерно так:

Фактическая строка имеет класс и его функцию на одной строке текста. Я добавил здесь разрывы строк, чтобы сделать его более читаемым, но компилятору все равно.

Далее код создает CodeDomProvider для компиляции кода C#. Он использует параметры, чтобы сообщить провайдеру создать неиспользуемую сборку, построенную в памяти, а затем вызывает метод CompileAssemblyFromSource для компиляции класса Evaluator с его Evaluate.

Если есть ошибки, программа отображает их. Попробуйте добавить некоторые синтаксические ошибки в уравнение, чтобы увидеть, что происходит. Если ошибка не слишком экстремальна, сообщения об ошибках часто достаточно хороши, чтобы вы могли исправить эту проблему.

Затем код получает Type, представляющий класс Evaluator, и из него получает объект MethodInfo, представляющий класс Evaluate tt>. Программа создает массив параметров, который содержит значения x и y для перехода в метод и вызывает метод, передавая ему эти параметры. Программа преобразует результат возврата метода из общего объекта в double и отображает его.

Источник: http://csharphelper.com/blog/2016/11/evaluate-numeric-expressions-that-are-entered-by-the-user-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *