Как использовать выражение для симуляции математического выражения? - PullRequest
0 голосов
/ 13 марта 2019

ниже мой фрагмент кода:

        ConstantExpression constant1 = Expression.Constant(5);
        ConstantExpression constant2 = Expression.Constant(5.3);
        Expression expr = Expression.Multiply(constant1, constant2);
        var compiled = Expression.Lambda<Func<double>>(expr).Compile();
        Console.WriteLine(compiled.Invoke());
        Console.WriteLine();

Исключение повышения системы на Expression expr = Expression.Multiply(constant1, constant2); сообщение об ошибке: отсутствует двоичный оператор Multiply между «System.Int32» и «System.Double». Я изменяю умножение, чтобы добавить и разделить сообщение об ошибке то же самое.

Как использовать выражение для симуляции математического выражения?

PS: я не буду использовать выражение, как ConstantExpression constant1 = Expression.Constant(5.0);. Потому что, если я напишу такой код, как показано ниже:

Console.WriteLine(string.Format("5*5.3={0}",5 * 5.3));

Все нормально, есть ли способ симулировать такое математическое выражение?

1 Ответ

0 голосов
/ 13 марта 2019

Если вы хотите избежать использования

ConstantExpression constant1 = Expression.Constant(5.0);

, вы можете использовать:

ConstantExpression constant1 = Expression.Constant(5d);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...