| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Подобие eval |
| Автор: Валерия 23.10.2007, 22:56 | ||
Так вот, eval точно нет, но есть ли какоето подобие eval в C# как у php или javascript? |
| Автор: archeg 24.10.2007, 00:54 | ||
| Можно через System.Reflection.Emit, только оно не так красочно будет выглядеть А зачем такое нужно? П.С. Как вариант использовать CodeDOM - только код в таком случае есть оддельная сборка(поэтому доступ к даным немного сложнее. Вот пример:
|
| Автор: Валерия 25.10.2007, 14:45 |
| А можно пример с System.Reflection.Emit ? З.Ы нужно что бы графики вводить не в исходнике а в форме. |
| Автор: marcusmae 27.10.2007, 17:36 |
| Валерия, проблема в том, что C# (в отличие от php и jscript) не явялется интерпретируемым языком, соответственно, он не может динамически исполнять вновь прибывшие строчки кода. Вариант, который предлагает archeg по сути состоит в том, что в дополнение к исполняющейся программе создаётся ещё один тип, а в нём - функция с кодом, получающимся, например, из Ваших текстовых строк. Эта функция компилируется в сборку, затем её можно вызывать из Вашей программы, например, через делегат. В общем, технология весьма синтетическая. Я делал визуализатор на её основе (см. приложенный архив). Там так же двумерная функция, график которой надо построить, задавалась, как функция на языке C# прямо из формы. Код очень похож на тот, что привёл archeg. |
| Автор: marcusmae 27.10.2007, 17:37 | ||||
Например, функция
![]()
http://img13.imagevenue.com/img.php?image=96945_sample2_122_768lo.jpg Вторая часть архива : |
| Автор: Валерия 30.11.2007, 15:17 |
| Мне нужно что бы я мог ввести в текстовое поле скажем (2*Math.Sin(a))/5 и что бы когда клацнул на OK что бы график нарисовало Собственно моя прога графики рисует, только эту строчку в самой проге нужно вводить Есть ли еще какието способы, или готовые анализаторы строк, желательно попроще, что бы только +-*/ sin cos tg ctg |