Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2016, 13:40   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Данные, как инструкции (код) для выполнения

Здравствуйте. Создал тему для собственного общего развития.
Суть вопроса: во всяких там переменных можно хранить данные, обрабатывать их, изменять, ну и так далее.
Вопрос: возможно ли в качестве данных содержать инструкции для их дальнейшего выполнения ? Исходный код, например ...
Что я имею ввиду (абстрактно): есть какая нибудь переменная string code, в которой хранится код функции; возможно ли этот код как либо выполнить ?
Я как то использовал подобный механизм для построения графиков функций: в строку сохранял полный код для его компиляции в процессе выполнения программы. Полный код - подразумевается, что всё содержимое строки имеет ту же структуру, что и в обычном файле исходного кода проекта. Но это слишком громоздко для выполнения на лету.
Меня же интересует возможность программно составить небольшую функцию, выполнить её, и забрать результат; если нужно передавать параметры - либо передача параметров прямо в функцию (думаю, что вряд ли это вообще возможно), либо использовать "глобальную область видимости" кода, хранимого в строке.
И всё это - в процессе выполнения программы. Возможно ли это ?
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 17.11.2016 в 13:54.
OmegaBerkut вне форума Ответить с цитированием
Старый 17.11.2016, 13:45   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Подключите любой скриптовый движок, например, Lua и не придумывайте велосипед на вашем уровне знаний.
p51x вне форума Ответить с цитированием
Старый 17.11.2016, 13:53   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

p51x
Я и не пытаюсь придумать велосипед ... Я спрашиваю, есть ли что то подобное ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 17.11.2016, 14:10   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам же уже назвали пример.
еще можно взять JS двиг, есть Roslyn(и скрипты и динамическая компиляция), есть динамическая компиляция кода(CodeDom).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.11.2016, 14:12   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
И всё это - в процессе выполнения программы. Возможно ли это ?
Да вы ж постоянно это делаете, компилируете программы не останавливая выполнение винды
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.11.2016, 14:53   #6
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Если хотите всё это делать в рамках .Net, то копайте в сторону Reflection. Можно в коде создавать сборки, а потом оттуда импортировать классы.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 17.11.2016, 15:15   #7
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Пепел Феникса, я знаю; к тому же - я знаю, что "мой уровень знаний" оставляет желать лучшего; но уважаемый p51x решил ткнуть меня мордой в этот факт. И нет - я не обижаюсь, я констатирую уже другой факт - p51x не понял моего вопроса. Вот я и возмутился.
Alex11223, согласен, но я не контролирую этот процесс, так как винду писал не я. А спросил о "существовании подобного" - что бы узнать, что мне доступно.
New man, благодарю за информацию.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 17.11.2016, 15:26   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от New man Посмотреть сообщение
Если хотите всё это делать в рамках .Net, то копайте в сторону Reflection. Можно в коде создавать сборки, а потом оттуда импортировать классы.
Emit далеко не единственный способ создания сборок.
чай не в каменном веке живем.
я назвал два примера которые принимают C# код на вход.

Roslyn я сам применяю, удобно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.11.2016, 15:32   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
я констатирую уже другой факт - p51x не понял моего вопроса. Вот я и возмутился.
Так что я не так понял?
p51x вне форума Ответить с цитированием
Старый 17.11.2016, 23:25   #10
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так что я не так понял?
То, что я ищу доступное, а не пытаюсь создать что то своё.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы во время выполнения одного кода работал другой код? SUDALV C# (си шарп) 2 23.02.2012 13:47
можно ли писать php код внутри javascript инструкции if? если можно, то как это сделать? Ubihinon JavaScript, Ajax 2 20.02.2012 08:40
можно ли писать php код внутри javascript инструкции if? если можно, то как это сделать? Ubihinon PHP 2 18.02.2012 17:45
Примеры как задания для выполнения reyn90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 31.08.2010 08:45
Почему после выполнения do-while, вложенного в if, инструкции дальше не выполняются? Chewing_dog Помощь студентам 3 09.06.2009 06:44