2

ユーザーに数値の入力を求め、NCalc式を評価して解決するために使用したい

string a = Console.ReadKey().ToString();
Expression e = new Expression("2 + [a] * 5"); 
object x = e.Evaluate();
Console.WriteLine("{0}", x.ToString());
Console.ReadKey();

これによりエラーが発生します。何が間違っていますか?

4

1 に答える 1

3

リテラル値のパラメーターを渡す必要がありますa

string a = Console.ReadKey().KeyChar.ToString();     // add KeyChar
Expression e = new Expression("2 + [a] * 5"); 
e.Parameters["a"] = a;                               // don't forget this line
object x = e.Evaluate();
Console.WriteLine("{0}", x.ToString());
Console.ReadKey();

もう一つ、

string a = Console.ReadKey().ToString();
// yields a string value: System.ConsoleKeyInfo 
// and not the number you typed.

とても使いやすい

string a = Console.ReadLine()
// or
string a = Console.ReadKey().KeyChar.ToString();     // KeyChar
于 2012-10-14T23:48:42.037 に答える