1) В таком случае компилятор поймёт, что result будет равнопроизведению 8 и 8.
public int Method(){
var result = 8*8;
return result;
}
2) А в таком - нет.
public int Method(){
string result = "8*8";
return Convert.ToInt32(result);
}
Как сделать так, что б во втором случае ошибки не было?
Возможно есть какой-то NuGet пакет, в котором есть подобный функционал, но встроенного такого в исходном C# уж точно не должно быть... Convert.ToInt32 - Этот метод переводит строковое значение в эквивалетное ему числовое значение, но уж никак не перетрансформирует строку в дерево выражений с парсингом...
Вам нужен NuGet пакет Microsoft.CodeAnalysis.Scripting.
var userInput = "8*8";
var result = await CSharpScript.EvaluateAsync(userInput);
Console.WriteLine(result);