Динамическое создание кода, макроподстановка как 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};
    }
}";

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы