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

命名空间:                   System.Linq.Expressions
程序集:         System.Core(System.Core.dll 中)

public enum ExpressionType

Add

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


AddAssign

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


AddAssignChecked

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


AddChecked

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


And

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


AndAlso

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


AndAssign

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


ArrayIndex

一维数组中的索引运算,如 C# 中的 array[index] 或 Visual Basic 中的 array(index)


ArrayLength

获取一维数组长度的运算,如 array.Length


Assign

赋值运算,如 (a = b)


Block

表达式块。


Call

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


Coalesce

表示 null 合并运算的节点,如 C# 中的 (a ?? b) 或 Visual Basic 中的 If(a, b)


Conditional

条件运算,如 C# 中的 a > b ? a : b 或 Visual Basic 中的 If(a > b, a, b)


Constant

一个常量值。


Convert

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


ConvertChecked

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


DebugInfo

调试信息。


Decrement

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


Default

默认值。


Divide

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


DivideAssign

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


Dynamic

动态操作。


Equal

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


ExclusiveOr

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


ExclusiveOrAssign

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


Extension

扩展表达式。


Goto

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


GreaterThan

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


GreaterThanOrEqual

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


Increment

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


Index

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


Invoke

调用委托或 lambda 表达式的运算,如 sampleDelegate.Invoke()


IsFalse

 false 条件值。


IsTrue

 true 条件值。


Label

标签。


Lambda

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


LeftShift

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


LeftShiftAssign

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


LessThan

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


LessThanOrEqual

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


ListInit

创建新的 IEnumerable 对象并从元素列表中初始化该对象的运算,如 C# 中的 new List<SampleType>(){ a, b, c } 或 Visual Basic 中的 Dim sampleList = { a, b, c }


Loop

循环,如 forwhile


MemberAccess

从字段或属性进行读取的运算,如 obj.SampleProperty


MemberInit

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


Modulo

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


ModuloAssign

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


Multiply

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


MultiplyAssign

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


MultiplyAssignChecked

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


MultiplyChecked

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


Negate

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


NegateChecked

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


New

调用构造函数创建新对象的运算,如 new SampleType()


NewArrayBounds

创建新数组(其中每个维度的界限均已指定)的运算,如 C# 中的 new SampleType[dim1, dim2] 或 Visual Basic 中的 New SampleType(dim1, dim2)


NewArrayInit

创建新的一维数组并从元素列表中初始化该数组的运算,如 C# 中的 new SampleType[]{a, b, c} 或 Visual Basic 中的 New SampleType(){a, b, c}


Not

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


NotEqual

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


OnesComplement

二进制反码运算,如 C# 中的 (~a)


Or

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


OrAssign

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


OrElse

短路条件 OR 运算,如 C# 中的 (a || b) 或 Visual Basic 中的 (a OrElse b)


Parameter

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


PostDecrementAssign

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


PostIncrementAssign

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


Power

对某个数字进行幂运算的数学运算,如 Visual Basic 中的 (a ^ b)


PowerAssign

对某个数字进行幂运算的复合赋值运算,如 Visual Basic 中的 (a ^= b)


PreDecrementAssign

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


PreIncrementAssign

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


Quote

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


RightShift

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


RightShiftAssign

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


RuntimeVariables

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


Subtract

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


SubtractAssign

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


SubtractAssignChecked

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


SubtractChecked

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


Switch

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


Throw

引发异常的运算,如 throw new Exception()


Try

 try-catch 表达式。


TypeAs

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


TypeEqual

确切类型测试。


TypeIs

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


UnaryPlus

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


Unbox

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

摘自有关此类型的每个枚举值的详细信息,请参见 expr 节点构树 spec.doc 或 expr 节点构树的第 4.4 节 spec.pdf Codeplex 网站的网页 Microsoft 基于动态语言运行

备注:https://msdn.microsoft.com/zh-cn/library/bb361179.aspx