语言

ExpressionType 枚举

定义

描述表达式树节点的节点类型。

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

字段

名称 值 说明
Add 0

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

AddChecked 1

对数值操作数进行溢出检查等 (a + b)加法运算。

And 2

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

AndAlso 3

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

ArrayLength 4

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

ArrayIndex 5

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

Call 6

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

Coalesce 7

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

Conditional 8

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

Constant 9

常数值。

Convert 10

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

ConvertChecked 11

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

Divide 12

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

Equal 13

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

ExclusiveOr 14

按位或逻辑运算,例如 C# 中的 < 或 Visual Basic c2 />。

GreaterThan 15

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

GreaterThanOrEqual 16

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

Invoke 17

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

Lambda 18

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

LeftShift 19

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

LessThan 20

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

LessThanOrEqual 21

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

ListInit 22

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

MemberAccess 23

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

MemberInit 24

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

Modulo 25

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

Multiply 26

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

MultiplyChecked 27

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

Negate 28

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

UnaryPlus 29

一元加运算,例如 (+a)。 预定义的一元加运算的结果是操作数的值,但用户定义的实现可能具有异常的结果。

NegateChecked 30

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

New 31

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

NewArrayInit 32

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

NewArrayBounds 33

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

Not 34

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

NotEqual 35

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

Or 36

按位或逻辑运算,例如 C# 中的 < 或 Visual Basic c2 />。

OrElse 37

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

Parameter 38

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

Power 39

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

Quote 40

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

RightShift 41

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

Subtract 42

数字操作数的减法运算,例如 (a - b),不进行溢出检查。

SubtractChecked 43

数值操作数的算术减法运算,例如 (a - b)具有溢出检查的算术减法运算。

TypeAs 44

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

TypeIs 45

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

Assign 46

工作分配操作,例如 (a = b)。

Block 47

表达式块。

DebugInfo 48

调试信息。

Decrement 49

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

Dynamic 50

动态操作。

Default 51

默认值。

Extension 52

扩展表达式。

Goto 53

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

Increment 54

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

Index 55

索引操作或访问采用参数的属性的操作。

Label 56

标签。

RuntimeVariables 57

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

Loop 58

循环,例如 for 或 while。

Switch 59

开关操作,例如 C# 中的 switch 或 Visual Basic 中的 Select Case。

Throw 60

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

Try 61

try-catch 表达式。

Unbox 62

取消装箱值类型操作,例如 unboxunbox.any MSIL 中的说明。

AddAssign 63

对于数值操作数,添加复合赋值运算,例如 (a += b),不进行溢出检查。

AndAssign 64

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

DivideAssign 65

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

ExclusiveOrAssign 66

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

LeftShiftAssign 67

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

ModuloAssign 68

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

MultiplyAssign 69

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

OrAssign 70

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

PowerAssign 71

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

RightShiftAssign 72

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

SubtractAssign 73

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

AddAssignChecked 74

为数值操作数添加复合赋值运算,例如 (a += b)溢出检查。

MultiplyAssignChecked 75

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

SubtractAssignChecked 76

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

PreIncrementAssign 77

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

PreDecrementAssign 78

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

PostIncrementAssign 79

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

PostDecrementAssign 80

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

TypeEqual 81

精确类型测试。

OnesComplement 82

一个补充操作,例如 (~a) 在 C# 中。

IsTrue 83

条件 true 值。

IsFalse 84

条件 false 值。

注解

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

适用于