Example #1
0
        private object EvaluateTernaryExpression(BoundTernaryExpression expression)
        {
            var conditionResult = (bool)EvaluateExpression(expression.Condition);

            if (conditionResult)
            {
                return(EvaluateExpression(expression.True));
            }
            else
            {
                return(EvaluateExpression(expression.False));
            }
        }
Example #2
0
        protected virtual BoundExpression RewriteTernaryExpression(BoundTernaryExpression node)
        {
            var condition = RewriteExpression(node.Condition);
            var thenExpr  = RewriteExpression(node.ThenExpression);
            var elseExpr  = RewriteExpression(node.ElseExpression);

            if (condition == node.Condition &&
                thenExpr == node.ThenExpression &&
                elseExpr == node.ElseExpression)
            {
                return(node);
            }
            return(new BoundTernaryExpression(condition, thenExpr, elseExpr, node.ResultType, node.IsValid));
        }