Динамическое создание кода, макроподстановка как FoxPro - C#
Формулировка задачи:
Здравствуйте!
Я перевожу приложение с FoxPro на C# в VisualStudio (Framework). Возникла следующая проблема. В FoxPro есть понятие макроподстановка (&tmp, где tmp - строка). Это когда можно в run-time вызвать на выполнение строку с любым текстом, главное, чтобы текст был написан на FoxPro. Причём в этой строке можно обращаться ко всем переменным, массивам и т.п., имеющимся в программе, откуда будет вызываться макроподстановка. Есть ли подобная возможность в C#?
Для данного приложения это принципиальный момент. В нём пользователь в TextBox может ввести текст и этот текст должен быть выполнен. Причем не один раз, а на каждом шаге сложного расчёта. (Этот текст - вес дуги в графе и он динамически меняется в зависимости от переменных, задействованных в строке)
Н-р: “IIF(INT(arr(i))=10,-1,1)” - на VFP или “Math.Floor(arr[i]) = = 10 ? -1 : 1” (Тип результата должен быть числовым). Пользователь знаком с правилами написания кода и со списком доступных переменных.
Подскажите, пожалуйста, как можно это реализовать в Framework? Помогут ли деревья выражений? Придётся самой разбирать строку на операторы, чего не хотелось бы очень?
Решение задачи: «Динамическое создание кода, макроподстановка как FoxPro»
textual
Листинг программы
static readonly string source = @"using System; static class Code { public static double Execute(int[] arr, int i) { return {source}; } }";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д