2013-12-23 92 views
1

我使用NCalc建立在C#中的数学表达式:NCalc在C#中的数学表达式 -

 Expression e = new Expression("2 + 3 * 5"); 

     Debug.Assert(17 == e.Evaluate()); 

但第二行给我一个错误 - “==操作符不能应用于int类型和对象的操作数“

如何解决这个问题呢?

+8

投?.................. –

+0

你需要把结果作为值需要拆箱!例如'(int)e.Evaluate',这是假定'e.Evaluate'确实会导致一个'int'而不是一些代表性的类型或容器类型 – Charleh

+0

错误信息是否不够明确?对于初学者来说,空的异常可能会很奇怪,但是这真的很简单... –

回答

2

Evaluate()方法返回一个object(从source code),所以你需要插入铸造,使这项工作:

Debug.Assert(17 == (int) e.Evaluate()); 

“简单表达”例如在NCalc home page不正确。

+0

我尝试了转换,但后来发生错误 - '在mscorlib.dll模块中找不到类型System.ApplicationException' – user2262230