public override void Visit(UnaryExpression unary) { // Recursively evaluates the underlying expression unary.Expression.Accept(this); switch (unary.Type) { case UnaryExpressionType.Not: Result = !ConversionUtility.Convert <bool>(Result); break; case UnaryExpressionType.Negate: Result = OperatorUtility.Negate(Result); break; case UnaryExpressionType.BitwiseNot: Result = OperatorUtility.Not(Result); break; } }