2013-12-23 6 views
1

Я использую NCalc создать математическое выражение в C#:NCalc математическое выражение в C# -

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

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

Но вторая линия дает мне ошибку - «Оператор == не может быть применен к операндам типа междунар и объекта "

Как решить эту проблему?

+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

Я пробовал кастинг, но потом я получил ошибку - «Не могу найти тип System.ApplicationException в модуле mscorlib.dll» – user2262230

Смежные вопросы