# BinaryExpression Class

**.NET Framework (current version)**

Represents an expression that has a binary operator.

**Namespace:**System.Linq.Expressions

**Assembly:**System.Core (in System.Core.dll)

Name | Description | |
---|---|---|

CanReduce | Gets a value that indicates whether the expression tree node can be reduced.(Overrides Expression.CanReduce.) | |

Conversion | Gets the type conversion function that is used by a coalescing or compound assignment operation. | |

IsLifted | Gets a value that indicates whether the expression tree node represents a | |

IsLiftedToNull | Gets a value that indicates whether the expression tree node represents a | |

Left | Gets the left operand of the binary operation. | |

Method | Gets the implementing method for the binary operation. | |

NodeType | Gets the node type of this Expression.(Inherited from Expression.) | |

Right | Gets the right operand of the binary operation. | |

Type | Gets the static type of the expression that this Expression represents.(Inherited from Expression.) |

Name | Description | |
---|---|---|

Accept(ExpressionVisitor) | Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall.(Overrides Expression.Accept(ExpressionVisitor).) | |

Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) | |

Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) | |

GetHashCode() | Serves as the default hash function. (Inherited from Object.) | |

GetType() | ||

MemberwiseClone() | ||

Reduce() | Reduces the binary expression node to a simpler expression.(Overrides Expression.Reduce().) | |

ReduceAndCheck() | Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced.(Inherited from Expression.) | |

ReduceExtensions() | Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.(Inherited from Expression.) | |

ToString() | Returns a textual representation of the Expression.(Inherited from Expression.) | |

Update(Expression, LambdaExpression, Expression) | 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. | |

VisitChildren(ExpressionVisitor) | Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible.(Inherited from Expression.) |

The following tables summarize the factory methods that can be used to create a BinaryExpression that has a specific node type, represented by the NodeType property. Each table contains information for a specific class of operations such as arithmetic or bitwise.

Node Type | Factory Method |
---|---|

Node Type | Factory Method |
---|---|

Node Type | Factory Method |
---|---|

In addition, the MakeBinary methods can also be used to create a BinaryExpression. These factory methods can be used to create a BinaryExpression of any node type that represents a binary operation. The parameter of these methods that is of type NodeType specifies the desired node type.

The following example creates a BinaryExpression object that represents the subtraction of one number from another.

// Create a BinaryExpression that represents subtracting 14 from 53. System.Linq.Expressions.BinaryExpression binaryExpression = System.Linq.Expressions.Expression.MakeBinary( System.Linq.Expressions.ExpressionType.Subtract, System.Linq.Expressions.Expression.Constant(53), System.Linq.Expressions.Expression.Constant(14)); Console.WriteLine(binaryExpression.ToString()); // This code produces the following output: // // (53 - 14)

**Universal Windows Platform**

Available since 8

**.NET Framework**

Available since 3.5

**Portable Class Library**

Supported in: portable .NET platforms

**Silverlight**

Available since 2.0

**Windows Phone Silverlight**

Available since 7.0

**Windows Phone**

Available since 8.1

Any public static (
**Shared**
in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.