System.Linq.Expressions.BinaryExpression.Update C# (CSharp) Method

Update() public method

Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.
public Update ( Expression left, LambdaExpression conversion, Expression right ) : BinaryExpression
left Expression The property of the result.
conversion LambdaExpression The property of the result.
right Expression The property of the result.
return BinaryExpression
        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);
        }

Usage Example

示例#1
0
        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));
        }
All Usage Examples Of System.Linq.Expressions.BinaryExpression::Update