Есть ли в C# аналог eval? [дубликат]

193
01 сентября 2018, 07:40

На данный вопрос уже ответили:

  • Выполнить строку как участок кода в C# 3 ответа

Проблема заключается в том, что надо получать на вход формулу, которую вводит пользователь, и эту формулу надо использовать для дальнейших вычислений.

Насколько могу предположить, при считывании с помощью ReadLine() это будет строка.

Есть ли в C# нечто похожее на eval() (например, Питоний)? Есть ли другие варианты, как формулу, содержащуюся в строке, использовать для подсчета (сделав из нее метод)? (Формула произвольная.)

Answer 1

Есть C# Scripting. Отвечал уже тут

Выглядит примерно так:

using System;
using Microsoft.CodeAnalysis.CSharp.Scripting;
namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var expression = "2 * 6";
            var result = Parse(expression);
            Console.WriteLine(result);
        }
        static double Parse(string expression)
        {
            return CSharpScript.EvaluateAsync<double>(expression).Result;
        }
    }
}
READ ALSO
Нужна помощь с Asp.Net Core

Нужна помощь с Asp.Net Core

<a asp-action="Create" class="c">Добавить модель</a>

162
Обработка ошибок в проекте MVC

Обработка ошибок в проекте MVC

Есть MVC-проект, в нём несколько десятков контроллеров с кучей различных методов

183
Подписать вызов события на событие

Подписать вызов события на событие

Делаю GUI для MonoGameОбработка происходит через метод Update(), что не всегда удобно, поэтому я решил вынести некоторый функционал в события

172
Повторение записи в ячейке (подсказка) DataGrid wpf

Повторение записи в ячейке (подсказка) DataGrid wpf

Подскажите, как сделать, чтобы текст, раннее введенный в ячейку DataGrid, повторялся после следующего ввода в другую ячейку (примерно как в Excel,...

202