#
ExpressionType
ExpressionType
ExpressionType
ExpressionType
Enum

## Definition

Describes the node types for the nodes of an expression tree.

### In this article

`public enum class ExpressionType`

`public enum ExpressionType`

`type ExpressionType = `

`Public Enum ExpressionType`

- Inheritance

## Fields

Add Add Add Add | 0 | An addition operation, such as |

AddAssign AddAssign AddAssign AddAssign | 63 | An addition compound assignment operation, such as |

AddAssignChecked AddAssignChecked AddAssignChecked AddAssignChecked | 74 | An addition compound assignment operation, such as |

AddChecked AddChecked AddChecked AddChecked | 1 | An addition operation, such as |

And And And And | 2 | A bitwise or logical |

AndAlso AndAlso AndAlso AndAlso | 3 | A conditional |

AndAssign AndAssign AndAssign AndAssign | 64 | A bitwise or logical |

ArrayIndex ArrayIndex ArrayIndex ArrayIndex | 5 | An indexing operation in a one-dimensional array, such as |

ArrayLength ArrayLength ArrayLength ArrayLength | 4 | An operation that obtains the length of a one-dimensional array, such as |

Assign Assign Assign Assign | 46 | An assignment operation, such as |

Block Block Block Block | 47 | A block of expressions. |

Call Call Call Call | 6 | A method call, such as in the |

Coalesce Coalesce Coalesce Coalesce | 7 | A node that represents a null coalescing operation, such as |

Conditional Conditional Conditional Conditional | 8 | A conditional operation, such as |

Constant Constant Constant Constant | 9 | A constant value. |

Convert Convert Convert Convert | 10 | A cast or conversion operation, such as |

ConvertChecked ConvertChecked ConvertChecked ConvertChecked | 11 | A cast or conversion operation, such as |

DebugInfo DebugInfo DebugInfo DebugInfo | 48 | Debugging information. |

Decrement Decrement Decrement Decrement | 49 | A unary decrement operation, such as |

Default Default Default Default | 51 | A default value. |

Divide Divide Divide Divide | 12 | A division operation, such as |

DivideAssign DivideAssign DivideAssign DivideAssign | 65 | An division compound assignment operation, such as |

Dynamic Dynamic Dynamic Dynamic | 50 | A dynamic operation. |

Equal Equal Equal Equal | 13 | A node that represents an equality comparison, such as |

ExclusiveOr ExclusiveOr ExclusiveOr ExclusiveOr | 14 | A bitwise or logical |

ExclusiveOrAssign ExclusiveOrAssign ExclusiveOrAssign ExclusiveOrAssign | 66 | A bitwise or logical |

Extension Extension Extension Extension | 52 | An extension expression. |

Goto Goto Goto Goto | 53 | A "go to" expression, such as |

GreaterThan GreaterThan GreaterThan GreaterThan | 15 | A "greater than" comparison, such as |

GreaterThanOrEqual GreaterThanOrEqual GreaterThanOrEqual GreaterThanOrEqual | 16 | A "greater than or equal to" comparison, such as |

Increment Increment Increment Increment | 54 | A unary increment operation, such as |

Index Index Index Index | 55 | An index operation or an operation that accesses a property that takes arguments. |

Invoke Invoke Invoke Invoke | 17 | An operation that invokes a delegate or lambda expression, such as |

IsFalse IsFalse IsFalse IsFalse | 84 | A |

IsTrue IsTrue IsTrue IsTrue | 83 | A |

Label Label Label Label | 56 | A label. |

Lambda Lambda Lambda Lambda | 18 | A lambda expression, such as |

LeftShift LeftShift LeftShift LeftShift | 19 | A bitwise left-shift operation, such as |

LeftShiftAssign LeftShiftAssign LeftShiftAssign LeftShiftAssign | 67 | A bitwise left-shift compound assignment, such as |

LessThan LessThan LessThan LessThan | 20 | A "less than" comparison, such as |

LessThanOrEqual LessThanOrEqual LessThanOrEqual LessThanOrEqual | 21 | A "less than or equal to" comparison, such as |

ListInit ListInit ListInit ListInit | 22 | An operation that creates a new IEnumerable object and initializes it from a list of elements, such as |

Loop Loop Loop Loop | 58 | A loop, such as |

MemberAccess MemberAccess MemberAccess MemberAccess | 23 | An operation that reads from a field or property, such as |

MemberInit MemberInit MemberInit MemberInit | 24 | An operation that creates a new object and initializes one or more of its members, such as |

Modulo Modulo Modulo Modulo | 25 | An arithmetic remainder operation, such as |

ModuloAssign ModuloAssign ModuloAssign ModuloAssign | 68 | An arithmetic remainder compound assignment operation, such as |

Multiply Multiply Multiply Multiply | 26 | A multiplication operation, such as |

MultiplyAssign MultiplyAssign MultiplyAssign MultiplyAssign | 69 | A multiplication compound assignment operation, such as |

MultiplyAssignChecked MultiplyAssignChecked MultiplyAssignChecked MultiplyAssignChecked | 75 | A multiplication compound assignment operation, such as |

MultiplyChecked MultiplyChecked MultiplyChecked MultiplyChecked | 27 | An multiplication operation, such as |

Negate Negate Negate Negate | 28 | An arithmetic negation operation, such as |

NegateChecked NegateChecked NegateChecked NegateChecked | 30 | An arithmetic negation operation, such as |

New New New New | 31 | An operation that calls a constructor to create a new object, such as |

NewArrayBounds NewArrayBounds NewArrayBounds NewArrayBounds | 33 | An operation that creates a new array, in which the bounds for each dimension are specified, such as |

NewArrayInit NewArrayInit NewArrayInit NewArrayInit | 32 | An operation that creates a new one-dimensional array and initializes it from a list of elements, such as |

Not Not Not Not | 34 | A bitwise complement or logical negation operation. In C#, it is equivalent to |

NotEqual NotEqual NotEqual NotEqual | 35 | An inequality comparison, such as |

OnesComplement OnesComplement OnesComplement OnesComplement | 82 | A ones complement operation, such as |

Or Or Or Or | 36 | A bitwise or logical |

OrAssign OrAssign OrAssign OrAssign | 70 | A bitwise or logical |

OrElse OrElse OrElse OrElse | 37 | A short-circuiting conditional |

Parameter Parameter Parameter Parameter | 38 | A reference to a parameter or variable that is defined in the context of the expression. For more information, see ParameterExpression. |

PostDecrementAssign PostDecrementAssign PostDecrementAssign PostDecrementAssign | 80 | A unary postfix decrement, such as |

PostIncrementAssign PostIncrementAssign PostIncrementAssign PostIncrementAssign | 79 | A unary postfix increment, such as |

Power Power Power Power | 39 | A mathematical operation that raises a number to a power, such as |

PowerAssign PowerAssign PowerAssign PowerAssign | 71 | A compound assignment operation that raises a number to a power, such as |

PreDecrementAssign PreDecrementAssign PreDecrementAssign PreDecrementAssign | 78 | A unary prefix decrement, such as |

PreIncrementAssign PreIncrementAssign PreIncrementAssign PreIncrementAssign | 77 | A unary prefix increment, such as |

Quote Quote Quote Quote | 40 | An expression that has a constant value of type Expression. A Quote node can contain references to parameters that are defined in the context of the expression it represents. |

RightShift RightShift RightShift RightShift | 41 | A bitwise right-shift operation, such as |

RightShiftAssign RightShiftAssign RightShiftAssign RightShiftAssign | 72 | A bitwise right-shift compound assignment operation, such as |

RuntimeVariables RuntimeVariables RuntimeVariables RuntimeVariables | 57 | A list of run-time variables. For more information, see RuntimeVariablesExpression. |

Subtract Subtract Subtract Subtract | 42 | A subtraction operation, such as |

SubtractAssign SubtractAssign SubtractAssign SubtractAssign | 73 | A subtraction compound assignment operation, such as |

SubtractAssignChecked SubtractAssignChecked SubtractAssignChecked SubtractAssignChecked | 76 | A subtraction compound assignment operation, such as |

SubtractChecked SubtractChecked SubtractChecked SubtractChecked | 43 | An arithmetic subtraction operation, such as |

Switch Switch Switch Switch | 59 | A switch operation, such as |

Throw Throw Throw Throw | 60 | An operation that throws an exception, such as |

Try Try Try Try | 61 | A |

TypeAs TypeAs TypeAs TypeAs | 44 | An explicit reference or boxing conversion in which |

TypeEqual TypeEqual TypeEqual TypeEqual | 81 | An exact type test. |

TypeIs TypeIs TypeIs TypeIs | 45 | A type test, such as |

UnaryPlus UnaryPlus UnaryPlus UnaryPlus | 29 | A unary plus operation, such as |

Unbox Unbox Unbox Unbox | 62 | An unbox value type operation, such as |

## Remarks

For more information about each enumeration value of this type, see Dynamic Language Runtime Overview.