public static T Evaluate <T>(string expression) { T result = default(T); if (!ExpressionEvaluator.TryParse <T>(expression, out result)) { expression = ExpressionEvaluator.PreFormatExpression(expression); string[] tokens = ExpressionEvaluator.ExpressionToTokens(expression); tokens = ExpressionEvaluator.FixUnaryOperators(tokens); string[] tokens2 = ExpressionEvaluator.InfixToRPN(tokens); result = ExpressionEvaluator.Evaluate <T>(tokens2); } return(result); }