ExpressionType 枚举

定义

介绍表达式树节点的节点类型。

public enum class ExpressionType
public enum ExpressionType
type ExpressionType = 
Public Enum ExpressionType
继承
ExpressionType

字段

Add 0

针对数字操作数的加法运算,例如 a + b,不进行溢出检查。

AddAssign 63

对数字操作数不执行溢出检查的加法复合赋值运算,例如 (a += b)

AddAssignChecked 74

对数字操作数执行溢出检查的加法复合赋值运算,例如 (a += b)

AddChecked 1

对数字操作数执行溢出检查的加法运算,例如 (a + b)

And 2

按位或逻辑 AND 运算,例如 (a & b) 在 C# 和 (a And b) Visual Basic 中。

AndAlso 3

条件 AND 运算,它仅在第一个操作数的计算结果为 true 时才计算第二个操作数。 它对应于 (a && b) C# 中的 和 (a AndAlso b) Visual Basic 中的 。

AndAssign 64

按位或逻辑 AND 复合赋值运算,例如 (a &= b) 在 C# 中。

ArrayIndex 5

一维数组中的索引操作,例如 array[index] 在 C# 或 array(index) Visual Basic 中。

ArrayLength 4

获取一维数组长度的操作,例如 array.Length

Assign 46

赋值操作,例如 (a = b)

Block 47

表达式块。

Call 6

方法调用,如 表达式中的 obj.sampleMethod()

Coalesce 7

表示 Null 合并操作的节点,例如 (a ?? b) 在 C# 中或在 If(a, b) Visual Basic 中。

Conditional 8

条件操作,例如 a > b ? a : b 在 C# 或 If(a > b, a, b) Visual Basic 中。

Constant 9

常数值。

Convert 10

强制转换或转换操作,例如 (SampleType)obj 在 C# 中或在 CType(obj, SampleType) Visual Basic 中。 对于数值转换,如果转换后的值对于目标类型来说太大,这不会引发异常。

ConvertChecked 11

强制转换或转换操作,例如 (SampleType)obj 在 C# 中或在 CType(obj, SampleType) Visual Basic 中。 对于数值转换,如果转换后的值与目标类型大小不符,则引发异常。

DebugInfo 48

调试信息。

Decrement 49

一元递减运算,例如 (a - 1) 在 C# 和 Visual Basic 中。 不应就地修改 对象 a

Default 51

默认值。

Divide 12

数值操作数的除法运算,如 (a / b)

DivideAssign 65

数值操作数的除法复合赋值运算,例如 (a /= b)

Dynamic 50

动态操作。

Equal 13

表示相等比较的节点,例如 (a == b) 在 C# 中或在 (a = b) Visual Basic 中。

ExclusiveOr 14

按位或逻辑 XOR 运算,例如 (a ^ b) 在 C# 或 (a Xor b) Visual Basic 中。

ExclusiveOrAssign 66

按位或逻辑 XOR 复合赋值运算,例如 (a ^= b) 在 C# 中。

Extension 52

扩展表达式。

Goto 53

“转到”表达式,例如 goto Label 在 C# 或 GoTo Label Visual Basic 中。

GreaterThan 15

“大于”比较,例如 (a > b)

GreaterThanOrEqual 16

“大于或等于”比较,例如 (a >= b)

Increment 54

一元递增运算,例如 (a + 1) 在 C# 和 Visual Basic 中。 不应就地修改 对象 a

Index 55

索引运算或访问使用参数的属性的运算。

Invoke 17

调用委托或 lambda 表达式的操作,例如 sampleDelegate.Invoke()

IsFalse 84

false 条件值。

IsTrue 83

true 条件值。

Label 56

标签。

Lambda 18

Lambda 表达式,例如 a => a + a 在 C# 中或在 Function(a) a + a Visual Basic 中。

LeftShift 19

按位左移运算,例如 (a << b)

LeftShiftAssign 67

按位左移复合赋值,例如 (a <<= b)

LessThan 20

“小于”比较,例如 (a < b)

LessThanOrEqual 21

“小于或等于”比较,例如 (a <= b)

ListInit 22

一种操作,用于创建新 IEnumerable 对象并从元素列表(如 new List<SampleType>(){ a, b, c } C# 或 Dim sampleList = { a, b, c } Visual Basic 中)对其进行初始化。

Loop 58

循环,例如 forwhile

MemberAccess 23

从字段或属性(如 ) obj.SampleProperty读取的操作。

MemberInit 24

一种操作,用于创建新对象并初始化其一个或多个成员,例如 new Point { X = 1, Y = 2 } 在 C# 中或在 New Point With {.X = 1, .Y = 2} Visual Basic 中。

Modulo 25

算术余数运算,例如 (a % b) 在 C# 或 (a Mod b) Visual Basic 中。

ModuloAssign 68

算术余数复合赋值运算,例如 (a %= b) 在 C# 中。

Multiply 26

对于数值操作数,不进行溢出检查的乘法运算,如 (a * b)

MultiplyAssign 69

一个乘法复合赋值运算,例如 (a *= b),不进行溢出检查,用于数值操作数。

MultiplyAssignChecked 75

对数值操作数进行溢出检查的乘法复合赋值运算,如 (a *= b)

MultiplyChecked 27

对数值操作数进行溢出检查的乘法运算,如 (a * b)

Negate 28

算术求反运算,例如 (-a)。 不应就地修改 对象 a

NegateChecked 30

具有溢出检查的算术求反运算,例如 (-a)。 不应就地修改 对象 a

New 31

调用构造函数以创建新对象的操作,例如 new SampleType()

NewArrayBounds 33

创建一个新数组的操作,其中指定了每个维度的边界,例如 new SampleType[dim1, dim2] 在 C# 中或在 New SampleType(dim1, dim2) Visual Basic 中。

NewArrayInit 32

一种操作,用于创建新的一维数组,并从元素列表(如 new SampleType[]{a, b, c} C# 或 New SampleType(){a, b, c} Visual Basic 中)初始化它。

Not 34

按位求补运算或逻辑求反运算。 在 C# 中,对于整型类型,它等效于 ;对于布尔值,它等效(~a)于 。(!a) 在 Visual Basic 中,它等效于 (Not a)。 不应就地修改 对象 a

NotEqual 35

不相等比较,例如 (a != b) 在 C# 中或在 (a <> b) Visual Basic 中。

OnesComplement 82

一个补码运算,例如 (~a) 在 C# 中。

Or 36

按位或逻辑 OR 运算,例如 (a | b) 在 C# 或 (a Or b) Visual Basic 中。

OrAssign 70

按位或逻辑 OR 复合赋值,例如 (a |= b) 在 C# 中。

OrElse 37

短路条件 OR 操作,例如 (a || b) 在 C# 或 (a OrElse b) Visual Basic 中。

Parameter 38

对在表达式上下文中定义的参数或变量的引用。 有关详细信息,请参阅 ParameterExpression

PostDecrementAssign 80

一元后缀递减,例如 (a--)。 应就地修改 对象 a

PostIncrementAssign 79

一元后缀增量,例如 (a++)。 应就地修改 对象 a

Power 39

将数字提升到幂的数学运算,例如 (a ^ b) 在 Visual Basic 中。

PowerAssign 71

将数字提高到幂的复合赋值运算,例如 (a ^= b) 在 Visual Basic 中。

PreDecrementAssign 78

一元前缀递减,例如 (--a)。 应就地修改 对象 a

PreIncrementAssign 77

一元前缀增量,例如 (++a)。 应就地修改 对象 a

Quote 40

具有类型为 Expression 的常量值的表达式。 Quote 节点可包含对参数的引用,这些参数在该节点表示的表达式的上下文中定义。

RightShift 41

按位右移运算,例如 (a >> b)

RightShiftAssign 72

按位右移复合赋值运算,例如 (a >>= b)

RuntimeVariables 57

运行时变量的列表。 有关详细信息,请参阅 RuntimeVariablesExpression

Subtract 42

对数值操作数执行减法运算,例如 (a - b),无需溢出检查。

SubtractAssign 73

对数值操作数不执行溢出检查的减法复合赋值运算,例如 (a -= b)

SubtractAssignChecked 76

对数值操作数进行溢出检查的减法复合赋值运算,如 (a -= b)

SubtractChecked 43

对数值操作数进行溢出检查的算术减法运算,如 (a - b)

Switch 59

多分支选择运算,如 C# 中的 switch 或 Visual Basic 中的 Select Case

Throw 60

引发异常的操作,例如 throw new Exception()

Try 61

try-catch 表达式。

TypeAs 44

一个显式引用或装箱转换 null ,如果转换失败,则提供该转换,例如 (obj as SampleType) 在 C# 中或在 TryCast(obj, SampleType) Visual Basic 中。

TypeEqual 81

确切类型测试。

TypeIs 45

类型测试,例如 obj is SampleType 在 C# 或 TypeOf obj is SampleType Visual Basic 中。

UnaryPlus 29

一元加运算,例如 (+a)。 预定义的一元加法运算的结果是操作数的值,但用户定义的实现可以产生特殊结果。

Unbox 62

取消装箱值类型运算,如 MSIL 中的 unboxunbox.any 指令。

注解

有关此类型的每个枚举值的详细信息,请参阅 动态语言运行时概述

适用于