/// <summary> /// 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. /// </summary> /// <param name="left">The <see cref="BinaryCSharpExpression.Left" /> property of the result. </param> /// <param name="leftConversion">The <see cref="LeftConversion" /> property of the result.</param> /// <param name="right">The <see cref="BinaryCSharpExpression.Right" /> property of the result. </param> /// <param name="finalConversion">The <see cref="FinalConversion" /> property of the result.</param> /// <returns>This expression if no children changed, or an expression with the updated children.</returns> public AssignBinaryCSharpExpression Update(Expression left, LambdaExpression leftConversion, Expression right, LambdaExpression finalConversion) { if (left == base.Left && leftConversion == this.LeftConversion && right == base.Right && finalConversion == this.FinalConversion) { return(this); } return(CSharpExpression.MakeBinaryAssign(CSharpNodeType, left, right, Method, finalConversion, leftConversion)); }