# ExpressionType Enum

## Definition

Important

Some information relates to prerelease product that may be substantially modified before itâ€™s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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

`public enum class ExpressionType`

`public enum ExpressionType`

`type ExpressionType = `

`Public Enum ExpressionType`

- Inheritance

## Fields

Add | 0 | An addition operation, such as |

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

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

AddChecked | 1 | An addition operation, such as |

And | 2 | A bitwise or logical |

AndAlso | 3 | A conditional |

AndAssign | 64 | A bitwise or logical |

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

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

Assign | 46 | An assignment operation, such as |

Block | 47 | A block of expressions. |

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

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

Conditional | 8 | A conditional operation, such as |

Constant | 9 | A constant value. |

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

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

DebugInfo | 48 | Debugging information. |

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

Default | 51 | A default value. |

Divide | 12 | A division operation, such as |

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

Dynamic | 50 | A dynamic operation. |

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

ExclusiveOr | 14 | A bitwise or logical |

ExclusiveOrAssign | 66 | A bitwise or logical |

Extension | 52 | An extension expression. |

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

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

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

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

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

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

IsFalse | 84 | A |

IsTrue | 83 | A |

Label | 56 | A label. |

Lambda | 18 | A lambda expression, such as |

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

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

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

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

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

Loop | 58 | A loop, such as |

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

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

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

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

Multiply | 26 | A multiplication operation, such as |

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

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

MultiplyChecked | 27 | An multiplication operation, such as |

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

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

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

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

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

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

NotEqual | 35 | An inequality comparison, such as |

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

Or | 36 | A bitwise or logical |

OrAssign | 70 | A bitwise or logical |

OrElse | 37 | A short-circuiting conditional |

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

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

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

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

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

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

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

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 | 41 | A bitwise right-shift operation, such as |

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

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

Subtract | 42 | A subtraction operation, such as |

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

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

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

Switch | 59 | A switch operation, such as |

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

Try | 61 | A |

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

TypeEqual | 81 | An exact type test. |

TypeIs | 45 | A type test, such as |

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

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.