private object EvaluateTernaryExpression(BoundTernaryExpression expression) { var conditionResult = (bool)EvaluateExpression(expression.Condition); if (conditionResult) { return(EvaluateExpression(expression.True)); } else { return(EvaluateExpression(expression.False)); } }
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)); }