/// <summary> /// Visits a conditional expression slim tree node, produces a conditional expression. /// </summary> /// <param name="node">Node to visit.</param> /// <param name="test">Test operand.</param> /// <param name="ifTrue">True operand.</param> /// <param name="ifFalse">False operand.</param> /// <returns>The conditional expression represented by the expression slim node.</returns> protected override Expression MakeConditional(ConditionalExpressionSlim node, Expression test, Expression ifTrue, Expression ifFalse) { if (node.Type != null) { var type = MakeType(node.Type); return(_factory.Condition(test, ifTrue, ifFalse, type)); } else { return(_factory.Condition(test, ifTrue, ifFalse)); } }
protected internal override ExpressionSlim VisitConditional(ConditionalExpressionSlim node) { Append("Conditional("); Visit(node.Test); Append(", "); Visit(node.IfTrue); Append(", "); Visit(node.IfFalse); Append(')'); return(node); }
/// <summary> /// Visits a conditional expression tree node. /// </summary> /// <param name="node">Node to visit.</param> /// <returns>Result of visiting the node.</returns> protected internal virtual ExpressionSlim VisitConditional(ConditionalExpressionSlim node) { return(node.Update(Visit(node.Test), Visit(node.IfTrue), Visit(node.IfFalse))); }