Задать вопрос
AlexXYZ
@AlexXYZ
O Keep Clear O

Получить текстовое представление формулы, записанной в коде, обратно в текст?

Всем привет.

В коде встречается много формул вида (штук 30 и будут пополняться, работа только началась, использование функций не предусмотрено, но может быть всякие мат.формулы типа SQRT, ABS и др):
_Weight_rostv = OTSTUP_SVAYA_MIN_B * 2 + (D_SVAYA + 1000) + D_SVAYA;
_Weight_rostv = OTSTUP_SVAYA_MIN_B * 2 + D_SVAYA * 3 + D_SVAYA;

нужно использовать эти выражения тремя способами
1. Получение результата (то, что и так есть само по себе)
2. Преобразование в строку текста выражения справа от равно (вот прям как в коде записано, можно без пробелов)
3. Идеально - вывод выражения с подстановкой параметров (заменить переменные на их значения).

Последовательность решения не важна, т.е. если можно придумать некий 4-й вариант и из него получать все три - тоже рассматривается.

Возможно ли?
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Средний Комментировать
Ответ пользователя VoidVolker К ответам на вопрос (3)
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Что-то типа такого:
public static void Main(string[] args)
{
    var cube = new Formula<Func<int, int>>( (x) => x * x, "(x) => x * x" );
    Console.WriteLine(cube.Exec(3));
    Console.WriteLine(cube.Text);
}

public class Formula<T>
{
    public readonly T Exec;
    public readonly string Text;
    public Formula(T action, string text)
    {
        Exec = action;
        Text = text;
    }                    
}
Ответ написан