![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 1 Всего: 8 |
Так вот, eval точно нет, но есть ли какоето подобие eval в C# как у php или javascript? |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 4 Всего: 27 |
Можно через System.Reflection.Emit, только оно не так красочно будет выглядеть
А зачем такое нужно? П.С. Как вариант использовать CodeDOM - только код в таком случае есть оддельная сборка(поэтому доступ к даным немного сложнее. Вот пример:
-------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 1 Всего: 8 |
А можно пример с System.Reflection.Emit ?
З.Ы нужно что бы графики вводить не в исходнике а в форме. |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Валерия, проблема в том, что C# (в отличие от php и jscript) не явялется интерпретируемым языком, соответственно, он не может динамически исполнять вновь прибывшие строчки кода.
Вариант, который предлагает archeg по сути состоит в том, что в дополнение к исполняющейся программе создаётся ещё один тип, а в нём - функция с кодом, получающимся, например, из Ваших текстовых строк. Эта функция компилируется в сборку, затем её можно вызывать из Вашей программы, например, через делегат. В общем, технология весьма синтетическая. Я делал визуализатор на её основе (см. приложенный архив). Там так же двумерная функция, график которой надо построить, задавалась, как функция на языке C# прямо из формы. Код очень похож на тот, что привёл archeg. Это сообщение отредактировал(а) marcusmae - 27.10.2007, 18:21 Присоединённый файл ( Кол-во скачиваний: 11 )
VPF.part01.rar 78,13 Kb-------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Например, функция
![]()
![]() Вторая часть архива : Это сообщение отредактировал(а) marcusmae - 27.10.2007, 17:58 Присоединённый файл ( Кол-во скачиваний: 11 )
VPF.part02.rar 71,17 Kb-------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 1 Всего: 8 |
Мне нужно что бы я мог ввести в текстовое поле скажем
(2*Math.Sin(a))/5 и что бы когда клацнул на OK что бы график нарисовало Собственно моя прога графики рисует, только эту строчку в самой проге нужно вводить Есть ли еще какието способы, или готовые анализаторы строк, желательно попроще, что бы только +-*/ sin cos tg ctg |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |