System.Linq.Expressions.BinaryExpression.Update C# (CSharp) Метод

Update() публичный Метод

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.
Результат 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