# Not supported ExpressionType
public enum ExpressionType
{
//
// Summary:
// An addition operation, such as (a + b), with overflow checking, for numeric operands.
AddChecked = 1,
//
// Summary:
// A cast or conversion operation, such as (SampleType)obj in C#or CType(obj, SampleType)
// in Visual Basic. For a numeric conversion, if the converted value does not fit
// the destination type, an exception is thrown.
ConvertChecked = 11,
//
// Summary:
// An operation that invokes a delegate or lambda expression, such as sampleDelegate.Invoke().
Invoke = 17,
//
// Summary:
// A lambda expression, such as a => a + a in C# or Function(a) a + a in Visual
// Basic.
Lambda = 18,
//
// Summary:
// An multiplication operation, such as (a * b), that has overflow checking, for
// numeric operands.
MultiplyChecked = 27,
//
// Summary:
// A unary plus operation, such as (+a). The result of a predefined unary plus operation
// is the value of the operand, but user-defined implementations might have unusual
// results.
UnaryPlus = 29,
//
// Summary:
// An arithmetic negation operation, such as (-a), that has overflow checking. The
// object a should not be modified in place.
NegateChecked = 30,
// Summary:
// An operation that creates a new array, in which the bounds for each dimension
// are specified, such as new SampleType[dim1, dim2] in C# or New SampleType(dim1,
// dim2) in Visual Basic.
NewArrayBounds = 33,
//
// Summary:
// A reference to a parameter or variable that is defined in the context of the
// expression. For more information, see System.Linq.Expressions.ParameterExpression.
Parameter = 38,
//
// Summary:
// A mathematical operation that raises a number to a power, such as (a ^ b)
Power = 39,
//
// Summary:
// An expression that has a constant value of type System.Linq.Expressions.Expression.
// A System.Linq.Expressions.ExpressionType.Quote node can contain references to
// parameters that are defined in the context of the expression it represents.
Quote = 40,
//
// Summary:
// An arithmetic subtraction operation, such as (a - b), that has overflow checking,
// for numeric operands.
SubtractChecked = 43,
//
// Summary:
// An assignment operation, such as (a = b).
Assign = 46,
//
// Summary:
// A block of expressions.
Block = 47,
//
// Summary:
// Debugging information.
DebugInfo = 48,
//
// Summary:
// A unary decrement operation, such as (a - 1) in C# and Visual Basic. The object
// a should not be modified in place.
Decrement = 49,
//
// Summary:
// A dynamic operation.
Dynamic = 50,
//
// Summary:
// An extension expression.
Extension = 52,
//
// Summary:
// A "go to" expression, such as goto Label in C# or GoTo Label in Visual Basic.
Goto = 53,
//
// Summary:
// A unary increment operation, such as (a + 1) in C# and Visual Basic. The object
// a should not be modified in place.
Increment = 54,
//
// Summary:
// An index operation or an operation that accesses a property that takes arguments.
Index = 55,
//
// Summary:
// A label.
Label = 56,
//
// Summary:
// A list of run-time variables. For more information, see System.Linq.Expressions.RuntimeVariablesExpression.
RuntimeVariables = 57,
//
// Summary:
// A loop, such as for or while.
Loop = 58,
//
// Summary:
// A switch operation, such as switch in C# or Select Case in Visual Basic.
Switch = 59,
//
// Summary:
// An operation that throws an exception, such as throw new Exception().
Throw = 60,
//
// Summary:
// A try-catch expression.
Try = 61,
//
// Summary:
// An unbox value type operation, such as unbox and unbox.any instructions in MSIL.
Unbox = 62,
//
// Summary:
// An addition compound assignment operation, such as (a += b), without overflow
// checking, for numeric operands.
AddAssign = 63,
//
// Summary:
// A bitwise or logical AND compound assignment operation, such as (a &= b) in C#.
AndAssign = 64,
//
// Summary:
// An division compound assignment operation, such as (a /= b), for numeric operands.
DivideAssign = 65,
//
// Summary:
// A bitwise or logical XOR compound assignment operation, such as (a ^= b) in C#.
ExclusiveOrAssign = 66,
//
// Summary:
// A bitwise left-shift compound assignment, such as (a <<= b).
LeftShiftAssign = 67,
//
// Summary:
// An arithmetic remainder compound assignment operation, such as (a %= b) in C#.
ModuloAssign = 68,
//
// Summary:
// A multiplication compound assignment operation, such as (a *= b), without overflow
// checking, for numeric operands.
MultiplyAssign = 69,
//
// Summary:
// A bitwise or logical OR compound assignment, such as (a |= b) in C#.
OrAssign = 70,
//
// Summary:
// A compound assignment operation that raises a number to a power, such as (a ^=
// b) in Visual Basic.
PowerAssign = 71,
//
// Summary:
// A bitwise right-shift compound assignment operation, such as (a >>= b).
RightShiftAssign = 72,
//
// Summary:
// A subtraction compound assignment operation, such as (a -= b), without overflow
// checking, for numeric operands.
SubtractAssign = 73,
//
// Summary:
// An addition compound assignment operation, such as (a += b), with overflow checking,
// for numeric operands.
AddAssignChecked = 74,
//
// Summary:
// A multiplication compound assignment operation, such as (a *= b), that has overflow
// checking, for numeric operands.
MultiplyAssignChecked = 75,
//
// Summary:
// A subtraction compound assignment operation, such as (a -= b), that has overflow
// checking, for numeric operands.
SubtractAssignChecked = 76,
//
// Summary:
// A unary prefix increment, such as (++a). The object a should be modified in place.
PreIncrementAssign = 77,
//
// Summary:
// A unary prefix decrement, such as (--a). The object a should be modified in place.
PreDecrementAssign = 78,
//
// Summary:
// A unary postfix increment, such as (a++). The object a should be modified in
// place.
PostIncrementAssign = 79,
//
// Summary:
// A unary postfix decrement, such as (a--). The object a should be modified in
// place.
PostDecrementAssign = 80,
//
// Summary:
// An exact type test.
TypeEqual = 81,
//
// Summary:
// A ones complement operation, such as (~a) in C#.
OnesComplement = 82,
//
// Summary:
// A true condition value.
IsTrue = 83,
//
// Summary:
// A false condition value.
IsFalse = 84
}