@pavviaz

Как можно записать String в Int с автоматическим упрощением?

Здравствуйте
У меня есть кусок кода :
public int Try()
        {
            k = 3*3;
            return k;
        }

Логично, что компилятор упростит переменную k, и функция вернет число 9.
При таком коде я получу ошибку :
public int Try()
        {
            string q = "3*3";
            return Convert.ToInt32(q);
        }

А как можно преобразовать строку в Int с автоматическиим упрощением компилятора, и в итоге получить 9 в функции, описанной выше?
Спасибо!
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
@kttotto
пофиг на чем писать
Метод Convert.ToInt32(string) конвертирует строковое значение в эквивалентное целое число. Этот метод не занимается парсингом Вашего выражения, чтобы построить из Вашей строки дерево выражений и конечно не пытается вычислить конечное значение.

А как можно преобразовать строку в Int и в итоге получить 9 в функции

Можно все. Но для этого нужно либо самому реализовать подобный функционал, либо на просторах найти готовую реализацию. Родного такого метода в C# нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@basrach
Если то, что вводит пользователь соответствует грамматике языка C#, то ставите nuget пакет Microsoft.CodeAnalysis.Scripting и дальше просто:
var userInput = "3*3";
var result = await CSharpScript.EvaluateAsync<int>(userInput);
Console.WriteLine(result); // 9
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы