跳转到主内容
极星编程网:以代码为星,赴技术山海!

Expression操作运算符、表达式和操作方法总结

一、Expression中的操作运算符

成员名称说明Add加法运算,如 a + b, ,不进行溢出检查,针对数值操作数。

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

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

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

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

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

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

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

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

Assign赋值运算,如 (a = b)。

Block表达式的块。

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

Coalesce一个表示空合并操作,如节点 (a ?? b) 在 C# 或 If(a, b) 在 Visual Basic 中。

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

Constant常量的值。

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

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

DebugInfo调试信息。

Decrement一元递减操作,如 (a - 1) C# 和 Visual Basic 中。 该对象 a 不应就地修改。

Default默认值。

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

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

Dynamic动态操作。

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

ExclusiveOr按位或逻辑 XOR 操作,如 (a ^ b) 在 C# 或 (a Xor b) 在 Visual Basic 中。

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

Extension扩展表达式。

Goto一个"转到"表达式,如 goto Label 在 C# 或 GoTo Label 在 Visual Basic 中。

GreaterThan"大于"比较,如 (a > b)。

GreaterThanOrEqual"大于或等于"比较,如 (a >= b)。

Increment一元递增操作,如 (a + 1) C# 和 Visual Basic 中。 该对象 a 不应就地修改。

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

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

IsFalse一个 false 条件值。

IsTrue一个 true 条件值。

Label标签。

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

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

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

LessThan"小于"比较,如 (a < b)。

LessThanOrEqual"小于或等于"比较,如 (a <= b)。

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

Loop一个循环,如 for 或 while。

MemberAccess从一个字段或属性,如读取操作 obj.SampleProperty。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OnesComplement一个二进制反码运算,如 (~a) C# 中。

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

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

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

Parameter对参数或变量的表达式的上下文中定义的引用。 有关更多信息,请参见ParameterExpression。

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

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

Power如引发数字进行幂运算的数学运算 (a ^ b) 在 Visual Basic 中。

PowerAssign如引发数字进行幂运算的复合赋值运算 (a ^= b) 在 Visual Basic 中。

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一个切换操作,如 switch 在 C# 或 Select Case 在 Visual Basic 中。

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

Try一个 try-catch 表达式。

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

TypeEqual确切类型测试。

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

UnaryPlus一元正运算,如 (+a)。 预定义的一元正运算的结果是操作数的值,但用户定义的实现可能有不寻常的结果。

Unbox取消装箱值类型的操作,如 unbox 和 unbox.any MSIL 中的说明。

二、Expression分类与操作运算符

Expression操作说明BinaryExpression表示具有二进制运算符的表达式UnaryExpression表示具有一元运算符的表达式BlockExpression表示包含一个表达式序列的块,表达式中可定义变量ConditionalExpression表示具有条件运算符的表达式ConstantExpression表示具有常数值的表达式DefaultExpression表示一个类型或空表达式的默认值DynamicExpression表示一个动态操作GotoExpression表示无条件跳转。 这包括返回语句,break 和 continue 语句以及其他跳转。

IndexExpression表示对一个属性或数组进行索引InvocationExpression表示一个将委托或 lambda 表达式应用到一个自变量表达式列表的表达式LabelExpression表示一个标签,可以放置在任何 Expression 上下文。 如果它跳转到,它会提供相应的值 GotoExpression。 否则,它接收中的值 DefaultValue。 如果 Type 等于 System.Void,则应提供任何值LambdaExpression介绍 lambda 表达式。 它捕获一个类似于 .NET 方法主体的代码块ListInitExpression表示具有集合初始值设定项的构造函数调用LoopExpression表示无限循环。 可通过“中断”退出该循环MemberExpression表示访问字段或属性MemberInitExpression表示调用构造函数并初始化新对象的一个或多个成员MethodCallExpression表示对静态方法或实例方法的调用NewArrayExpression表示创建一个新数组,并可能初始化该新数组的元素NewExpression表示一个构造函数调用ParameterExpression表示一个命名的参数表达式SwitchExpression表示通过将控制权传递给处理多个选择的控件表达式 SwitchCase TryExpression表示一个 try/catch/finally/fault 块TypeBinaryExpression表示表达式和类型之间的操作

三、Expression的操作方法

名称说明Accept(ExpressionVisitor)调度到此节点类型的特定 Visit 方法。 例如,MethodCallExpression调用VisitMethodCall。

Add(Expression, Expression)创建一个表示不进行溢出检查的算术加法运算的BinaryExpression。

Add(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的算术加法运算的BinaryExpression。 可指定实现方法。

AddAssign(Expression, Expression)创建一个表示不进行溢出检查的加法赋值运算的BinaryExpression。

AddAssign(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的加法赋值运算的BinaryExpression。

AddAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示不进行溢出检查的加法赋值运算的BinaryExpression。

AddAssignChecked(Expression, Expression)创建一个表示进行溢出检查的加法赋值运算的BinaryExpression。

AddAssignChecked(Expression, Expression, MethodInfo)创建一个表示进行溢出检查的加法赋值运算的BinaryExpression。

AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示进行溢出检查的加法赋值运算的BinaryExpression。

AddChecked(Expression, Expression)创建一个表示进行溢出检查的算术加法运算的BinaryExpression。

AddChecked(Expression, Expression, MethodInfo)创建一个表示进行溢出检查的算术加法运算的BinaryExpression。 可指定实现方法。

And(Expression, Expression)创建一个表示按位BinaryExpression运算的AND。

And(Expression, Expression, MethodInfo)创建一个表示按位BinaryExpression运算的AND。 可指定实现方法。

AndAlso(Expression, Expression)创建一个BinaryExpression,它表示仅在第一个操作数的计算结果为AND时才计算第二个操作数的条件true运算。

AndAlso(Expression, Expression, MethodInfo)创建一个BinaryExpression,它表示仅在第一个操作数解析为 true 时,才计算第二个操作数的条件AND运算。 可指定实现方法。

AndAssign(Expression, Expression)创建一个表示按位 AND 赋值运算的BinaryExpression。

AndAssign(Expression, Expression, MethodInfo)创建一个表示按位 AND 赋值运算的BinaryExpression。

AndAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示按位 AND 赋值运算的BinaryExpression。

ArrayAccess(Expression, Expression[])创建一个用于访问数组的IndexExpression。

ArrayAccess(Expression, IEnumerable)创建一个用于访问多维数组的IndexExpression。

ArrayIndex(Expression, Expression)创建一个BinaryExpression,它表示将数组索引运算符应用到级别一的数组中。

ArrayIndex(Expression, Expression[])创建一个MethodCallExpression,它表示将数组索引运算符应用到多维数组中。

ArrayIndex(Expression, IEnumerable)创建一个MethodCallExpression,它表示将数组索引运算符应用到多个级别的数组中。

ArrayLength(Expression)创建一个UnaryExpression,它表示获取一维数组的长度的表达式。

Assign(Expression, Expression)创建一个表示赋值运算的BinaryExpression。

Bind(MemberInfo, Expression)创建一个MemberAssignment,它表示字段或属性的初始化。

Bind(MethodInfo, Expression)使用属性访问器方法,创建一个表示成员初始化的MemberAssignment。

Block(Expression, Expression)创建一个BlockExpression,其中包含两个表达式,但不包含任何变量。

Block(Expression, Expression, Expression)创建一个BlockExpression,其中包含三个表达式,但不包含任何变量。

Block(Expression, Expression, Expression, Expression)创建一个BlockExpression,其中包含四个表达式,但不包含任何变量。

Block(Expression, Expression, Expression, Expression, Expression)创建一个BlockExpression,其中包含五个表达式,但不包含任何变量。

Block(Expression[])创建一个BlockExpression,其中包含给定表达式,但不包含任何变量。

Block(IEnumerable)创建一个BlockExpression,其中包含给定表达式,但不包含任何变量。

Block(IEnumerable, Expression[])创建一个BlockExpression,其中包含给定的变量和表达式。

Block(IEnumerable, IEnumerable)创建一个BlockExpression,其中包含给定的变量和表达式。

Block(Type, Expression[])创建一个BlockExpression,其中包含给定表达式和特定结果类型,但不包含任何变量。

Block(Type, IEnumerable)创建一个BlockExpression,其中包含给定表达式和特定结果类型,但不包含任何变量。

Block(Type, IEnumerable, Expression[])创建一个BlockExpression,其中包含给定的变量和表达式。

Block(Type, IEnumerable, IEnumerable)创建一个BlockExpression,其中包含给定的变量和表达式。

Break(LabelTarget)创建一个表示 break 语句的GotoExpression。

Break(LabelTarget, Expression)创建一个表示 break 语句的GotoExpression。 可以指定在跳转时传递给标签的值。

Break(LabelTarget, Expression, Type)创建一个表示具有指定类型的 break 语句的GotoExpression。 可以指定在跳转时传递给标签的值。

Break(LabelTarget, Type)创建一个表示具有指定类型的 break 语句的GotoExpression。

Call(Expression, MethodInfo)创建一个MethodCallExpression,它表示调用不带参数的方法。

Call(Expression, MethodInfo, Expression, Expression)创建一个MethodCallExpression,它表示对采用两个参数的方法的调用。

Call(Expression, MethodInfo, Expression, Expression, Expression)创建一个MethodCallExpression,它表示对使用三个参数的方法的调用。

Call(Expression, MethodInfo, Expression[])创建一个表示调用带参数的方法的MethodCallExpression。

Call(Expression, MethodInfo, IEnumerable)创建一个表示调用带参数的方法的MethodCallExpression。

Call(Expression, String, Type[], Expression[])通过调用合适的工厂方法,创建一个MethodCallExpression,它表示方法调用。

Call(MethodInfo, Expression)创建一个MethodCallExpression,它表示对使用一个参数的static方法(在 Visual Basic 中为Shared方法)的调用。

Call(MethodInfo, Expression, Expression)创建一个MethodCallExpression,它表示对使用两个参数的静态方法的调用。

Call(MethodInfo, Expression, Expression, Expression)创建一个MethodCallExpression,它表示对使用三个参数的静态方法的调用。

Call(MethodInfo, Expression, Expression, Expression, Expression)创建一个MethodCallExpression,它表示对使用四个参数的静态方法的调用。

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)创建一个MethodCallExpression,它表示对使用五个参数的静态方法的调用。

Call(MethodInfo, Expression[])创建一个MethodCallExpression,它表示调用有参数的static(在 Visual Basic 中为Shared)方法。

Call(MethodInfo, IEnumerable)创建一个MethodCallExpression,它表示对 static 方法(在 Visual Basic 中为 Shared 方法)的调用。

Call(Type, String, Type[], Expression[])通过调用合适的工厂方法,创建一个MethodCallExpression,它表示对static(在 Visual Basic 中为Shared)方法的调用。

Catch(ParameterExpression, Expression)创建一个表示 catch 语句的CatchBlock,其中具有对已捕获的Exception对象的引用以便在处理程序主体中使用。

Catch(ParameterExpression, Expression, Expression)创建一个表示 catch 语句的CatchBlock,其中具有Exception筛选器和对已捕获的Exception对象的引用。

Catch(Type, Expression)创建一个表示 catch 语句的CatchBlock。

Catch(Type, Expression, Expression)创建一个表示 catch 语句的CatchBlock,其中具有Exception筛选器,但没有对已捕获的Exception对象的引用。

ClearDebugInfo(SymbolDocumentInfo)创建一个用于清除序列点的DebugInfoExpression。

Coalesce(Expression, Expression)创建一个表示合并运算的BinaryExpression。

Coalesce(Expression, Expression, LambdaExpression)在给定转换函数的情况下,创建一个表示合并运算的BinaryExpression。

Condition(Expression, Expression, Expression)创建一个表示条件语句的ConditionalExpression。

Condition(Expression, Expression, Expression, Type)创建一个表示条件语句的ConditionalExpression。

Constant(Object)创建一个ConstantExpression,它把Value属性设置为指定值。

Constant(Object, Type)创建一个ConstantExpression,它把Value和Type属性设置为指定值。

Continue(LabelTarget)创建一个表示 continue 语句的GotoExpression。

Continue(LabelTarget, Type)创建一个表示具有指定类型的 continue 语句的GotoExpression。

Convert(Expression, Type)创建一个表示类型转换运算的UnaryExpression。

Convert(Expression, Type, MethodInfo)创建一个UnaryExpression,它表示为其指定实现方法的转换运算。

ConvertChecked(Expression, Type)创建一个UnaryExpression,它表示在目标类型发生溢出时引发异常的转换运算。

ConvertChecked(Expression, Type, MethodInfo)创建一个UnaryExpression,它表示在目标类型发生溢出时引发异常且为其指定实现方法的转换运算。

DebugInfo(SymbolDocumentInfo, Int32, Int32, Int32, Int32)创建一个具有指定跨度的DebugInfoExpression。

Decrement(Expression)创建一个UnaryExpression,它表示按 1 递减表达式值。

Decrement(Expression, MethodInfo)创建一个UnaryExpression,它表示按 1 递减表达式值。

Default(Type)创建一个DefaultExpression,Type属性设置为指定类型。

Divide(Expression, Expression)创建一个表示算术除法运算的BinaryExpression。

Divide(Expression, Expression, MethodInfo)创建一个表示算术除法运算的BinaryExpression。 可指定实现方法。

DivideAssign(Expression, Expression)创建一个表示不进行溢出检查的除法赋值运算的BinaryExpression。

DivideAssign(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的除法赋值运算的BinaryExpression。

DivideAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示不进行溢出检查的除法赋值运算的BinaryExpression。

Dynamic(CallSiteBinder, Type, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

Dynamic(CallSiteBinder, Type, Expression, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

Dynamic(CallSiteBinder, Type, Expression[])创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

Dynamic(CallSiteBinder, Type, IEnumerable)创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

ElementInit(MethodInfo, Expression[])在给定值数组作为第二个参数的情况下,创建一个ElementInit。

ElementInit(MethodInfo, IEnumerable)在给定ElementInit作为第二个参数的情况下,创建一个IEnumerable。

Empty()创建具有Void类型的空表达式。

Equal(Expression, Expression)创建一个表示相等比较的BinaryExpression。

Equal(Expression, Expression, Boolean, MethodInfo)创建一个表示相等比较的BinaryExpression。 可指定实现方法。

Equals(Object)确定指定的对象是否等于当前对象。(继承自Object。)

ExclusiveOr(Expression, Expression)通过对用户定义的类型使用BinaryExpression,创建一个表示按位XOR运算的op_ExclusiveOr。

ExclusiveOr(Expression, Expression, MethodInfo)通过对用户定义的类型使用BinaryExpression,创建一个表示按位XOR运算的op_ExclusiveOr。 可指定实现方法。

ExclusiveOrAssign(Expression, Expression)通过对用户定义的类型使用BinaryExpression,创建一个表示按位 XOR 赋值运算的op_ExclusiveOr。

ExclusiveOrAssign(Expression, Expression, MethodInfo)通过对用户定义的类型使用BinaryExpression,创建一个表示按位 XOR 赋值运算的op_ExclusiveOr。

ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression)通过对用户定义的类型使用BinaryExpression,创建一个表示按位 XOR 赋值运算的op_ExclusiveOr。

Field(Expression, FieldInfo)创建一个表示访问字段的MemberExpression。

Field(Expression, String)在给定字段名称的情况下,创建一个表示访问此字段的MemberExpression。

Field(Expression, Type, String)创建一个表示访问字段的MemberExpression。

Finalize()在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。(继承自Object。)

GetActionType(Type[])创建一个Type对象,它表示具有特定类型参数的泛型System.Action委托类型。

GetDelegateType(Type[])获取一个Type对象,它表示具有特定类型参数的泛型System.Func或System.Action委托类型。

GetFuncType(Type[])创建一个Type对象,它表示具有特定类型参数的泛型System.Func委托类型。 最后一个类型参数指定已创建委托的返回类型。

GetHashCode()作为默认哈希函数。(继承自Object。)

GetType()获取当前实例的Type。(继承自Object。)

Goto(LabelTarget)创建一个表示“go to”语句的GotoExpression。

Goto(LabelTarget, Expression)创建一个表示“go to”语句的GotoExpression。 可以指定在跳转时传递给标签的值。

Goto(LabelTarget, Expression, Type)创建一个表示具有指定类型的“go to”语句的GotoExpression。 可以指定在跳转时传递给标签的值。

Goto(LabelTarget, Type)创建一个表示具有指定类型的“go to”语句的GotoExpression。

GreaterThan(Expression, Expression)创建一个表示“大于”数值比较的BinaryExpression。

GreaterThan(Expression, Expression, Boolean, MethodInfo)创建一个表示“大于”数值比较的BinaryExpression。 可指定实现方法。

GreaterThanOrEqual(Expression, Expression)创建一个表示“大于或等于”数值比较的BinaryExpression。

GreaterThanOrEqual(Expression, Expression, Boolean, MethodInfo)创建一个表示“大于或等于”数值比较的BinaryExpression。

IfThen(Expression, Expression)创建一个ConditionalExpression,它表示带if语句的条件块。

IfThenElse(Expression, Expression, Expression)创建一个ConditionalExpression,它表示带if和else语句的条件块。

Increment(Expression)创建一个UnaryExpression,它表示按 1 递增表达式值。

Increment(Expression, MethodInfo)创建一个UnaryExpression,它表示按 1 递增表达式值。

Invoke(Expression, Expression[])创建一个InvocationExpression,它将委托或 lambda 表达式应用于一个参数表达式列表。

Invoke(Expression, IEnumerable)创建一个InvocationExpression,它将委托或 lambda 表达式应用于一个参数表达式列表。

IsFalse(Expression)返回表达式的计算结果是否为 false。

IsFalse(Expression, MethodInfo)返回表达式的计算结果是否为 false。

IsTrue(Expression)返回表达式的计算结果是否为 true。

IsTrue(Expression, MethodInfo)返回表达式的计算结果是否为 true。

Label()创建一个LabelTarget,它表示具有 void 类型但没有名称的标签。

Label(LabelTarget)创建一个LabelExpression,它表示不带默认值的标签。

Label(LabelTarget, Expression)创建一个LabelExpression,它表示具有给定默认值的标签。

Label(String)创建一个LabelTarget,它表示具有 void 类型和给定名称的标签。

Label(Type)创建一个LabelTarget,它表示具有给定类型的标签。

Label(Type, String)创建一个LabelTarget,它表示具有给定类型和名称的标签。

Lambda(Expression, Boolean, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Expression, Boolean, ParameterExpression[])通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Expression, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Expression, ParameterExpression[])通过先构造一个委托类型来创建一个LambdaExpression。

Lambda(Expression, String, Boolean, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Expression, String, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Type, Expression, Boolean, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Type, Expression, Boolean, ParameterExpression[])通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Type, Expression, IEnumerable)通过先构造一个委托类型来创建一个LambdaExpression。 如果委托类型在编译时未知,则可以使用它。

Lambda(Type, Expression, ParameterExpression[])通过先构造一个委托类型来创建一个LambdaExpression。 如果委托类型在编译时未知,则可以使用它。

Lambda(Type, Expression, String, Boolean, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Type, Expression, String, IEnumerable)通过先构造一个委托类型来创建一个 LambdaExpression。

Lambda(Expression, Boolean, IEnumerable)创建一个在编译时委托类型已知的Expression。

Lambda(Expression, Boolean, ParameterExpression[])创建一个在编译时委托类型已知的Expression。

Lambda(Expression, IEnumerable)创建一个在编译时委托类型已知的Expression。

Lambda(Expression, ParameterExpression[])创建一个在编译时委托类型已知的Expression。

Lambda(Expression, String, Boolean, IEnumerable)创建一个在编译时委托类型已知的Expression。

Lambda(Expression, String, IEnumerable)创建一个在编译时委托类型已知的Expression。

LeftShift(Expression, Expression)创建一个表示按位左移运算的BinaryExpression。

LeftShift(Expression, Expression, MethodInfo)创建一个表示按位左移运算的BinaryExpression。

LeftShiftAssign(Expression, Expression)创建一个表示按位左移赋值运算的BinaryExpression。

LeftShiftAssign(Expression, Expression, MethodInfo)创建一个表示按位左移赋值运算的BinaryExpression。

LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示按位左移赋值运算的BinaryExpression。

LessThan(Expression, Expression)创建一个表示“小于”数值比较的BinaryExpression。

LessThan(Expression, Expression, Boolean, MethodInfo)创建一个表示“小于”数值比较的BinaryExpression。

LessThanOrEqual(Expression, Expression)创建一个表示“小于或等于”数值比较的BinaryExpression。

LessThanOrEqual(Expression, Expression, Boolean, MethodInfo)创建一个表示“小于或等于”数值比较的BinaryExpression。

ListBind(MemberInfo, ElementInit[])创建一个其成员为字段或属性的MemberListBinding。

ListBind(MemberInfo, IEnumerable)创建一个其成员为字段或属性的MemberListBinding。

ListBind(MethodInfo, ElementInit[])基于指定的属性访问器方法创建一个MemberListBinding对象。

ListBind(MethodInfo, IEnumerable)基于指定的属性访问器方法创建一个MemberListBinding。

ListInit(NewExpression, ElementInit[])创建一个使用指定ListInitExpression对象来初始化集合的ElementInit。

ListInit(NewExpression, Expression[])创建一个使用名为“Add”的方法将元素添加到集合中的ListInitExpression。

ListInit(NewExpression, IEnumerable)创建一个使用指定ListInitExpression对象来初始化集合的ElementInit。

ListInit(NewExpression, IEnumerable)创建一个使用名为“Add”的方法将元素添加到集合中的ListInitExpression。

ListInit(NewExpression, MethodInfo, Expression[])创建一个使用指定方法将元素添加到集合中的ListInitExpression。

ListInit(NewExpression, MethodInfo, IEnumerable)创建一个使用指定方法将元素添加到集合中的ListInitExpression。

Loop(Expression)创建具有给定主体的LoopExpression。

Loop(Expression, LabelTarget)创建具有给定主体和中断目标的LoopExpression。

Loop(Expression, LabelTarget, LabelTarget)创建具有给定主体的LoopExpression。

MakeBinary(ExpressionType, Expression, Expression)在给定左操作数和右操作数的情况下,通过调用适当的工厂方法来创建一个BinaryExpression。

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo)在给定左操作数、右操作数和实现方法的情况下,通过调用适当的工厂方法来创建一个BinaryExpression。

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo, LambdaExpression)在给定左操作数、右操作数、实现方法和类型转换函数的情况下,通过调用适当的工厂方法来创建一个BinaryExpression。

MakeCatchBlock(Type, ParameterExpression, Expression, Expression)创建一个表示具有指定元素的 catch 语句的CatchBlock。

MakeDynamic(Type, CallSiteBinder, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder和一个参数绑定的动态操作。

MakeDynamic(Type, CallSiteBinder, Expression, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder和两个参数绑定的动态操作。

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder和三个参数绑定的动态操作。

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression)创建一个DynamicExpression,它表示由提供的CallSiteBinder和四个参数绑定的动态操作。

MakeDynamic(Type, CallSiteBinder, Expression[])创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

MakeDynamic(Type, CallSiteBinder, IEnumerable)创建一个DynamicExpression,它表示由提供的CallSiteBinder绑定的动态操作。

MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)创建一个GotoExpression,它表示指定的GotoExpressionKind的跳转。 也可以指定在跳转时传递给标签的值。

MakeIndex(Expression, PropertyInfo, IEnumerable)创建一个IndexExpression,它表示访问对象中的索引属性。

MakeMemberAccess(Expression, MemberInfo)创建一个表示访问字段或属性的MemberExpression。

MakeTry(Type, Expression, Expression, Expression, IEnumerable)创建一个表示具有指定元素的 try 块的TryExpression。

MakeUnary(ExpressionType, Expression, Type)在给定操作数的情况下,通过调用适当的工厂方法来创建一个UnaryExpression。

MakeUnary(ExpressionType, Expression, Type, MethodInfo)在给定操作数和实现方法的情况下,通过调用适当的工厂方法来创建一个UnaryExpression。

MemberBind(MemberInfo, IEnumerable)创建一个表示递归初始化某个字段或属性的成员的MemberMemberBinding。

MemberBind(MemberInfo, MemberBinding[])创建一个表示递归初始化某个字段或属性的成员的MemberMemberBinding。

MemberBind(MethodInfo, IEnumerable)使用属性访问器方法创建一个表示对所访问的成员的成员进行递归初始化的MemberMemberBinding。

MemberBind(MethodInfo, MemberBinding[])使用属性访问器方法创建一个表示对所访问的成员的成员进行递归初始化的MemberMemberBinding。

MemberInit(NewExpression, IEnumerable)表示一个表达式,该表达式创建新对象并初始化该对象的一个属性。

MemberInit(NewExpression, MemberBinding[])创建一个MemberInitExpression。

MemberwiseClone()创建当前Object的浅表副本。(继承自Object。)

Modulo(Expression, Expression)创建一个表示算术余数运算的BinaryExpression。

Modulo(Expression, Expression, MethodInfo)创建一个表示算术余数运算的BinaryExpression。

ModuloAssign(Expression, Expression)创建一个表示余数赋值运算的BinaryExpression。

ModuloAssign(Expression, Expression, MethodInfo)创建一个表示余数赋值运算的BinaryExpression。

ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示余数赋值运算的BinaryExpression。

Multiply(Expression, Expression)创建一个表示不进行溢出检查的算术乘法运算的BinaryExpression。

Multiply(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的算术乘法运算的BinaryExpression。

MultiplyAssign(Expression, Expression)创建一个表示不进行溢出检查的乘法赋值运算的BinaryExpression。

MultiplyAssign(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的乘法赋值运算的BinaryExpression。

MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示不进行溢出检查的乘法赋值运算的BinaryExpression。

MultiplyAssignChecked(Expression, Expression)创建一个表示进行溢出检查的乘法赋值运算的BinaryExpression。

MultiplyAssignChecked(Expression, Expression, MethodInfo)创建一个表示进行溢出检查的乘法赋值运算的BinaryExpression。

MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示进行溢出检查的乘法赋值运算的BinaryExpression。

MultiplyChecked(Expression, Expression)创建一个表示进行溢出检查的算术乘法运算的BinaryExpression。

MultiplyChecked(Expression, Expression, MethodInfo)创建一个表示进行溢出检查的算术乘法运算的BinaryExpression。

Negate(Expression)创建一个表示算术求反运算的UnaryExpression。

Negate(Expression, MethodInfo)创建一个表示算术求反运算的UnaryExpression。

NegateChecked(Expression)创建一个表示进行溢出检查的算术求反运算的UnaryExpression。

NegateChecked(Expression, MethodInfo)创建一个表示进行溢出检查的算术求反运算的UnaryExpression。 可指定实现方法。

New(ConstructorInfo)创建一个表示调用不带参数的指定构造函数的NewExpression。

New(ConstructorInfo, Expression[])创建一个表示调用带指定参数的指定构造函数的NewExpression。

New(ConstructorInfo, IEnumerable)创建一个表示调用带指定参数的指定构造函数的NewExpression。

New(ConstructorInfo, IEnumerable, IEnumerable)创建一个表示调用带指定参数的指定构造函数的NewExpression。 其中指定了访问构造函数初始化的字段的成员。

New(ConstructorInfo, IEnumerable, MemberInfo[])创建一个表示调用带指定参数的指定构造函数的NewExpression。 将访问构造函数初始化字段的成员指定为数组。

New(Type)创建一个表示调用指定类型的无参数构造函数的NewExpression。

NewArrayBounds(Type, Expression[])创建一个表示创建具有指定秩的数组的NewArrayExpression。

NewArrayBounds(Type, IEnumerable)创建一个表示创建具有指定秩的数组的NewArrayExpression。

NewArrayInit(Type, Expression[])创建一个表示创建一维数组并使用元素列表初始化该数组的NewArrayExpression。

NewArrayInit(Type, IEnumerable)创建一个表示创建一维数组并使用元素列表初始化该数组的NewArrayExpression。

Not(Expression)创建一个表示按位求补运算的UnaryExpression。

Not(Expression, MethodInfo)创建一个表示按位求补运算的UnaryExpression。 可指定实现方法。

NotEqual(Expression, Expression)创建一个表示不相等比较的BinaryExpression。

NotEqual(Expression, Expression, Boolean, MethodInfo)创建一个表示不相等比较的BinaryExpression。

OnesComplement(Expression)返回表示一的补数的表达式。

OnesComplement(Expression, MethodInfo)返回表示一的补数的表达式。

Or(Expression, Expression)创建一个表示按位BinaryExpression运算的OR。

Or(Expression, Expression, MethodInfo)创建一个表示按位BinaryExpression运算的OR。

OrAssign(Expression, Expression)创建一个表示按位 OR 赋值运算的BinaryExpression。

OrAssign(Expression, Expression, MethodInfo)创建一个表示按位 OR 赋值运算的BinaryExpression。

OrAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示按位 OR 赋值运算的BinaryExpression。

OrElse(Expression, Expression)创建一个BinaryExpression,它表示仅在第一个操作数的计算结果为OR时才计算第二个操作数的条件false运算。

OrElse(Expression, Expression, MethodInfo)创建一个BinaryExpression,它表示仅在第一个操作数的计算结果为OR时才计算第二个操作数的条件false运算。

Parameter(Type)创建一个ParameterExpression节点,该节点可用于标识表达式树中的参数或变量。

Parameter(Type, String)创建一个ParameterExpression节点,该节点可用于标识表达式树中的参数或变量。

PostDecrementAssign(Expression)创建一个UnaryExpression,它表示将原始表达式递减 1 之后再进行表达式赋值。

PostDecrementAssign(Expression, MethodInfo)创建一个UnaryExpression,它表示将原始表达式递减 1 之后再进行表达式赋值。

PostIncrementAssign(Expression)创建一个UnaryExpression,它表示将原始表达式递增 1 之后再进行表达式赋值。

PostIncrementAssign(Expression, MethodInfo)创建一个UnaryExpression,它表示将原始表达式递增 1 之后再进行表达式赋值。

Power(Expression, Expression)创建一个表示对数进行幂运算的BinaryExpression。

Power(Expression, Expression, MethodInfo)创建一个表示对数进行幂运算的BinaryExpression。

PowerAssign(Expression, Expression)创建一个BinaryExpression,它表示对表达式求幂并将结果赋回给表达式。

PowerAssign(Expression, Expression, MethodInfo)创建一个BinaryExpression,它表示对表达式求幂并将结果赋回给表达式。

PowerAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个BinaryExpression,它表示对表达式求幂并将结果赋回给表达式。

PreDecrementAssign(Expression)创建一个UnaryExpression,它将表达式递减 1 并将结果赋回给表达式。

PreDecrementAssign(Expression, MethodInfo)创建一个UnaryExpression,它将表达式递减 1 并将结果赋回给表达式。

PreIncrementAssign(Expression)创建一个UnaryExpression,它将表达式递增 1 并将结果赋回给表达式。

PreIncrementAssign(Expression, MethodInfo)创建一个UnaryExpression,它将表达式递增 1 并将结果赋回给表达式。

Property(Expression, MethodInfo)使用属性访问器方法创建一个表示访问属性的MemberExpression。

Property(Expression, PropertyInfo)创建一个表示访问属性的MemberExpression。

Property(Expression, PropertyInfo, Expression[])创建一个IndexExpression,它表示对索引属性的访问。

Property(Expression, PropertyInfo, IEnumerable)创建一个IndexExpression,它表示对索引属性的访问。

Property(Expression, String)创建一个表示访问属性的MemberExpression。

Property(Expression, String, Expression[])创建一个IndexExpression,它表示对索引属性的访问。

Property(Expression, Type, String)创建一个访问属性的MemberExpression。

PropertyOrField(Expression, String)创建一个表示访问属性或字段的MemberExpression。

Quote(Expression)创建一个表示具有类型UnaryExpression的常量值的表达式的 Expression。

Reduce()将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。

ReduceAndCheck()将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。

ReduceExtensions()将表达式简化为已知节点类型(即非 Extension 节点)或仅在此类型为已知类型时返回表达式。

ReferenceEqual(Expression, Expression)创建一个表示引用相等比较的BinaryExpression。

ReferenceNotEqual(Expression, Expression)创建一个表示引用不相等比较的BinaryExpression。

Rethrow()创建一个UnaryExpression,它表示重新引发异常。

Rethrow(Type)创建一个UnaryExpression,它表示重新引发具有给定类型的异常。

Return(LabelTarget)创建一个表示 return 语句的GotoExpression。

Return(LabelTarget, Expression)创建一个表示 return 语句的GotoExpression。 可以指定在跳转时传递给标签的值。

Return(LabelTarget, Expression, Type)创建一个表示具有指定类型的 return 语句的GotoExpression。 可以指定在跳转时传递给标签的值。

Return(LabelTarget, Type)创建一个表示具有指定类型的 return 语句的GotoExpression。

RightShift(Expression, Expression)创建一个表示按位右移运算的BinaryExpression。

RightShift(Expression, Expression, MethodInfo)创建一个表示按位右移运算的BinaryExpression。

RightShiftAssign(Expression, Expression)创建一个表示按位右移赋值运算的BinaryExpression。

RightShiftAssign(Expression, Expression, MethodInfo)创建一个表示按位右移赋值运算的BinaryExpression。

RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示按位右移赋值运算的BinaryExpression。

RuntimeVariables(IEnumerable)创建RuntimeVariablesExpression的实例。

RuntimeVariables(ParameterExpression[])创建RuntimeVariablesExpression的实例。

Subtract(Expression, Expression)创建一个表示不进行溢出检查的算术减法运算的BinaryExpression。

Subtract(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的算术减法运算的BinaryExpression。

SubtractAssign(Expression, Expression)创建一个表示不进行溢出检查的减法赋值运算的BinaryExpression。

SubtractAssign(Expression, Expression, MethodInfo)创建一个表示不进行溢出检查的减法赋值运算的BinaryExpression。

SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示不进行溢出检查的减法赋值运算的BinaryExpression。

SubtractAssignChecked(Expression, Expression)创建一个表示进行溢出检查的减法赋值运算的BinaryExpression。

SubtractAssignChecked(Expression, Expression, MethodInfo)创建一个表示进行溢出检查的减法赋值运算的BinaryExpression。

SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)创建一个表示进行溢出检查的减法赋值运算的BinaryExpression。

SubtractChecked(Expression, Expression)创建一个表示进行溢出检查的算术减法运算的BinaryExpression。

SubtractChecked(Expression, Expression, MethodInfo)创建一个表示进行溢出检查的算术减法运算的BinaryExpression。

Switch(Expression, Expression, MethodInfo, IEnumerable)创建一个表示具有默认分支的SwitchExpression语句的switch。

Switch(Expression, Expression, MethodInfo, SwitchCase[])创建一个表示具有默认分支的SwitchExpression语句的switch。

Switch(Expression, Expression, SwitchCase[])创建一个表示具有默认分支的SwitchExpression语句的switch。

Switch(Expression, SwitchCase[])创建一个表示不带默认分支的SwitchExpression语句的switch。

Switch(Type, Expression, Expression, MethodInfo, IEnumerable)创建一个表示具有默认分支的SwitchExpression语句的switch。

Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])创建一个SwitchExpression,它表示具有默认分支的switch语句。

SwitchCase(Expression, Expression[])创建在SwitchCase中使用的SwitchExpression。

SwitchCase(Expression, IEnumerable)创建要在SwitchCase对象中使用的SwitchExpression对象。

SymbolDocument(String)创建SymbolDocumentInfo的实例。

SymbolDocument(String, Guid)创建SymbolDocumentInfo的实例。

SymbolDocument(String, Guid, Guid)创建SymbolDocumentInfo的实例。

SymbolDocument(String, Guid, Guid, Guid)创建SymbolDocumentInfo的实例。

Throw(Expression)创建一个UnaryExpression,它表示引发异常。

Throw(Expression, Type)创建一个UnaryExpression,它表示引发具有给定类型的异常。

ToString()返回 Expression 的的文本化表示形式。(覆盖Object.ToString()。)

TryCatch(Expression, CatchBlock[])创建一个表示 try 块的TryExpression,该 try 块包含任意数量的 catch 语句,但不包含 fault 和 finally 块。

TryCatchFinally(Expression, Expression, CatchBlock[])创建一个表示 try 块的TryExpression,该 try 块包含任意数量的 catch 语句和一个 finally 块。

TryFault(Expression, Expression)创建一个表示 try 块的TryExpression,该 try 块包含一个 fault 块,但不包含 catch 语句。

TryFinally(Expression, Expression)创建一个表示 try 块的TryExpression,该 try 块包含一个 finally 块,但不包含 catch 语句。

TryGetActionType(Type[], Type)创建一个Type对象,它表示具有特定类型参数的泛型 System.Action 委托类型。

TryGetFuncType(Type[], Type)创建一个Type对象,它表示具有特定类型参数的泛型 System.Func 委托类型。 最后一个类型参数指定已创建委托的返回类型。

TypeAs(Expression, Type)创建一个表示显式引用或装箱转换的UnaryExpression(如果转换失败,则提供null)。

TypeEqual(Expression, Type)创建一个比较运行时类型标识的TypeBinaryExpression。

TypeIs(Expression, Type)创建一个TypeBinaryExpression。

UnaryPlus(Expression)创建一个表示一元正运算的UnaryExpression。

UnaryPlus(Expression, MethodInfo)创建一个表示一元正运算的UnaryExpression。

Unbox(Expression, Type)创建一个表示显式取消装箱的UnaryExpression。

Variable(Type)创建一个ParameterExpression节点,该节点可用于标识表达式树中的参数或变量。

Variable(Type, String)创建一个ParameterExpression节点,该节点可用于标识表达式树中的参数或变量。

VisitChildren(ExpressionVisitor)简化节点,然后对简化的表达式调用访问者委托。 该方法在节点不可简化时引发异常。

到此这篇关于Expression操作符运算符、表达式和操作方法总结的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:C#表达式树Expression动态创建表达式C#表达式树Expression基础讲解带你一文了解C#中的Expression C# 表达式目录树Expression的实现C#简单实现表达式目录树(Expression)

C# 表达式树Expression Trees的知识梳理C#之Expression表达式树实例

相关文章