Путь разработчика    

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

Рекомендуем: Типы датчиков износа тормозных колодок и принцип их работы
eda2480d

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

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

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

Python

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

Python

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

Далее код создает 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/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:


HashMap в Java

В терминах компьютерного программирования карта представляет собой набор ассоциаций между парами объектов. Java HashMap - это базовая реализация интерфейса...

21 06 2021 20:30:37

If, else, Switch в JavaScript

Все языки программирования предоставляют инструкции управления потоком, которые позволяют вам контролировать порядок выполнения кода. Условный оператор пре...

20 06 2021 20:37:18

Выполнение эффекта «красных глаз» на изображении в C#

В этом примере показан один подход для уменьшения эффекта «красных глаз». Иногда на снимке глаза человека или животного выходят ярко-красным. Это раздражаю...

19 06 2021 6:21:17

Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript и CSS (Р. Никсон)

Научитесь создавать современные динамические веб-сайты, даже если у вас нет опыта в программировании. Если вы умеете писать статические сайты на HTML, то с...

18 06 2021 21:30:17

Как освоить профессию программиста: основные ошибки

Как освоить профессию программиста? Какие основные ошибки? Можно бесконечно перечитывать одни и те же статьи без особой пользы. Но гораздо лучше усваивать информацию небольшими частями, сразу...

17 06 2021 13:39:10

В чем разница между = и == в Python?

В Python и во многих других языках программирования для присвоения значения переменной используется одна равная метка, тогда как две последовательные равны...

16 06 2021 16:43:23

Самые популярные и востребованные языки программирования в 2018 году

Какие самые популярные и востребованные языки программирования в 2018 году? Программирование является одной из самых перспективных сфер деятельности в наше время. Человечество все больше погружается...

15 06 2021 14:19:13

Сортировка ListView, используя столбец, который вы нажимаете на C#

Вы можете сортировать ListView с помощью столбца, который вы нажимаете, но это намного больше, чем просто сортировка элементов ListView. Для сортировки с и...

14 06 2021 20:20:18

Вызов общедоступных методов, используя их имена в C#

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

13 06 2021 2:25:58

Как определить, существует ли файл или каталог в C#

Обычно лучше проверить, существует ли файл или каталог, прежде чем пытаться получить к нему доступ. Например, если вы пытаетесь прочитать файл, который не...

12 06 2021 16:41:18

Рекурсивно решить проблему Башни Ханоя в C#

Пример Рекурсивно рисуем двоичное дерево в C# использует рекурсию для рисования ветвей дерева. Хороших примеров рекурсии трудно найти, потому что человечес...

11 06 2021 13:33:42

Java для чайников (Барри Берд)

Java — современный объектно-ориентированный язык программирования. Программа, написанная на Java, способна выполняться практически на любом компьютере. Зна...

10 06 2021 2:42:31

Стандартные исключения в C#

Пример Используйте try блоки блокировки для защиты от непредвиденных ошибок в C# объясняют, как поймать исключение, и вкратце упоминает, что вы можете испо...

09 06 2021 17:48:50

1С: Бухгалтерия 8.3 для бухгалтера (Николай Селищев)

1 С: Бухгалтерия 8.3 для бухгалтера является иллюстрированным практическим руководством по работе с новейшим и самым современным программным продуктом по ве...

08 06 2021 8:44:41

График исторических значений Dow Jones Industrial Average в C#

Эта программа отображает исторические цены на индекс Dow Jones Industrial Average. Я получил данные с этого URL: Поля в URL: Результаты приведены в примере...

07 06 2021 20:25:28

Что такое компилятор Just-In-Time (JIT) в Java?

Компилятор Just-In-Time (JIT) является компонентом JRE (Java Runtime Environment), который повышает производительность приложений Java во время выполнения....

06 06 2021 14:14:16

Сохранение цветовой палитры в настройках программы на C#

Пример Сделать постоянную цветовую палитру в C# показывает, как программа может использовать настройки для сохранения и восстановления цветовой палитры. Пр...

05 06 2021 16:49:56

Рисуем преобразованный текст в C#

В этом примере используется следующий обработчик события Paint для рисования преобразованного текста. Код добавляет преобразования к объекту Graphics, чтоб...

04 06 2021 3:46:22

Как сравнить производительность методов сравнения строк в C#

В этом примере используется следующий код для создания четырех строк: Затем он использует несколько методов для сравнения первой строки с другими. Например...

03 06 2021 13:20:24

Метод indexOf() в Java

Метод Java String indexOf() возвращает позицию указанной строки или символа из данной строки. Если целевая строка или символ не существует, она вернет -1....

02 06 2021 15:35:46

Переменные и типы данных JavaScript

Данные могут быть разных типов. Типы данных зависят от значений, которые удерживаются переменной. Следующий урок охватывает динамические типы данных JavaSc...

01 06 2021 6:38:31

Использование улучшенного метода расширения для вычисления стандартного отклонения в C#

Пример Вычислить стандартное отклонение в C# использует метод расширения, который вычисляет стандартное отклонение для целых чисел IEnumerable. К сожалению...

31 05 2021 20:59:14

Как разделить строку в C#

В этой статье мы узнаем, как разделить строку на C#. C# Split () обрабатывает разделение на заданные строковые и символьные разделители.  Он возвращает масс...

30 05 2021 23:10:26

Разделить файлы изображений в C#

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

29 05 2021 11:31:43

Преобразовать байт-массив в шестнадцатеричную строку и наоборот в C#

В этой статье мы узнаем, как преобразовать байт-массив в шестнадцатеричную строку и наоборот в C#. Преобразование байт-массива в шестнадцатеричную строку в...

28 05 2021 22:16:39

Как рассчитать сумму денег в C#

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

27 05 2021 20:51:45

Генерация букв с заданными частотами в C#

В этом примере генерируются случайные буквы с частотами, которые они имеют в обычном английском тексте. Следующий код показывает, как этот пример запускает...

26 05 2021 9:44:58

Изменение ориентации и полей печати в C#

В этом примере показано, как изменить ориентацию и поля печати в распечатке или предварительном просмотре печати. По умолчанию, когда вы показываете предва...

25 05 2021 18:39:22

Преобразование между байтовыми массивами и шестнадцатеричными строками в C#

В этом примере используются методы расширения для преобразования между байтовыми массивами и шестнадцатеричными строками. Он добавляет метод расширения ToH...

24 05 2021 5:54:33

1С: Предприятие,Эффективное программирование (Т.Н. Усиков)

Описан встроенный язык программирования пакета «1 С: Предприятие», методы настройки и конфигурирования системы с его помощью. Дополнительно содержит необход...

23 05 2021 20:40:11

PHP. Объекты, шаблоны и методики программирования, 4-е издание (Мэт Зандстра)

Четвертое издание книги было пересмотрено и дополнено новым материалом. Книга начинается с обзора объектно-ориентированных возможностей PHP, в который вклю...

22 05 2021 4:24:12

Рихтер Дж. CLR via C#: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#

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

21 05 2021 19:51:58

Qt 5.3. Профессиональное программирование на C++ (Шлее М.)

  Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предостав...

20 05 2021 14:26:41

Преобразование растрового изображения в курсор в C#

Преобразование растрового изображения в курсор непросто, но вы можете сделать это, используя функцию API CreateIconIndirect. В этом примере используется сл...

19 05 2021 9:42:34

Программирование на Java

Сокет - одна из самых фундаментальных технологий программирования компьютерной сети. Это способ подключения двух узлов в сети для связи друг с другом. Прог...

18 05 2021 23:25:11

Получите серийные номера системной платы и идентификаторы ЦП в C#

В этом примере показано, как получить серийные номера системной платы и идентификаторы Ц П. WMI ( Инструмент управления Windows) позволяет использовать SQL-п...

17 05 2021 5:10:45

Расположите форму в нижнем правом углу экрана в C#

Свойство Screen.PrimaryScreen.WorkingArea дает размер рабочей области основного экрана. ( Для получения дополнительной информации см. Получить рабочую облас...

16 05 2021 13:26:33

Рисуем круг через три точки в C#

Перпендикулярная биссектриса любой хорды на круге проходит через центр круга. Чтобы найти центр, заданный тремя точками, просто найдите перпендикулярные би...

15 05 2021 5:14:10

Как быстро выбрать уровень сжатия JPEG в C#

Пример Сжатие файлов JPG до определенного размер в C# позволяет вам отрегулировать уровень сжатия JPG файла, пока он не станет больше указанного размера. О...

14 05 2021 13:59:12

Программирование в тональности С# (Петцольд Ч.)

Эта книга — своего рода учебник для тех, кто решил заняться изучением С#—современного, объектно-ориентированного языка программирования, разработанного Mic...

13 05 2021 14:12:30

Циклы For и While в Python

Циклы - одна из самых важных функций в программировании. Петли предлагают быстрый и простой способ сделать что-то многократно. Он может выполнять > блок...

12 05 2021 17:40:48

Анимация проблемы Башни Ханоя в C#

Следующий метод AnimateMovement перемещает диск по прямой линии из текущего местоположения в новый. Код вычисляет количество пикселей в секунду, которое он...

11 05 2021 0:28:46

Как открыть и прочитать URL-адрес в Java

Чтение с URL-адреса так же просто, как чтение из входного потока. URL - это аббревиатура Uniform Resource Locator. Java-программы, которые взаимодействуют...

10 05 2021 16:49:58

Разница между capacity() и size() вектора в Java

Разница между capacity() и size() в Java.util.Vector заключается в том, что size() - это количество элементов, которые в настоящее время удерживаются, а ca...

09 05 2021 21:22:39

Список местоположений специальных папок в C#

Перечисление System.Environment класса SpecialFolders перечисляет специальные папки, такие как System, Cookies, Desktop и т. д. Метод класса GetFolderPath...

08 05 2021 7:47:32

Как аннотации работают на Java?

Аннотации Java используются для предоставления метаданных для Java-кода, хотя они не являются частью самой программы. Метаданные - это данные о данных. Так...

07 05 2021 7:42:34

Использование предопределенных цветов системы в C#

Статический класс System.Drawing.SystemColors определяет свойства, которые дают системные цвета. К ним относятся цвета для таких объектов, как активные объ...

06 05 2021 7:52:59

Пользовательский ввод в Bash

Если мы хотим попросить пользователя ввести его, мы будем использовать команду read .  Эта команда берет ввод и сохраняет его в переменной. read var1 Давайте рассмотрим простой пример:...

05 05 2021 21:41:58

Как отобразить числовые значения для цветов в радуге в C#

Иногда полезно сопоставлять числовые значения цвета. Например, интенсивность цвета может указывать на плотность населения, урожайность сельскохозяйственных...

04 05 2021 0:31:33

Отображение всплывающих подсказок для элементов ListView в C#

В этом примере показано, как отображать различные подсказки для элементов в ListBox. Когда вы перемещаете мышь над элементом в ListBox, программа используе...

03 05 2021 10:39:48

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

И сказал Великий Программист:
«После трёх дней без программирования жизнь теряет смысл»