2013-12-23 56 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