public Update ( |
||
left | The |
|
conversion | The |
|
right | The |
|
Résultat |
public BinaryExpression Update(Expression left, LambdaExpression conversion, Expression right)
{
if (left == Left && right == Right && conversion == Conversion)
{
return this;
}
if (IsReferenceComparison)
{
if (NodeType == ExpressionType.Equal)
{
return Expression.ReferenceEqual(left, right);
}
else
{
return Expression.ReferenceNotEqual(left, right);
}
}
return Expression.MakeBinary(NodeType, left, right, IsLiftedToNull, Method, conversion);
}
protected override ExpressionTree VisitBinary(BinaryExpression node) { BinaryExpression expression; if (node.Conversion != null) { CheckChildrenCount(3); var l = ExtractChildExpression(0); var r = ExtractChildExpression(1); var c = (LambdaExpression)ExtractChildExpression(2); expression = node.Update(l, c, r); } else { CheckChildrenCount(2); var l = ExtractChildExpression(0); var r = ExtractChildExpression(1); expression = node.Update(l, conversion: null, r); } return(CreateExpressionTree(expression)); }