Expression 类

定义

提供从中派生表示表达式树节点的类的基类。 它还包含用于创建各种节点类型的 static(Visual Basic 中的Shared)工厂方法。 这是一个 abstract 类。

public ref class Expression abstract
public abstract class Expression
type Expression = class
Public MustInherit Class Expression
继承
Expression
派生

示例

下面的代码示例演示如何创建块表达式。 块表达式由两个 MethodCallExpression 对象和一个 ConstantExpression 对象组成。

// Add the following directive to your file:
// using System.Linq.Expressions;

// The block expression allows for executing several expressions sequentually.
// When the block expression is executed,
// it returns the value of the last expression in the sequence.
BlockExpression blockExpr = Expression.Block(
    Expression.Call(
        null,
        typeof(Console).GetMethod("Write", new Type[] { typeof(String) }),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        null,
        typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
);

Console.WriteLine("The result of executing the expression tree:");
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
var result = Expression.Lambda<Func<int>>(blockExpr).Compile()();

// Print out the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:");
foreach (var expr in blockExpr.Expressions)
    Console.WriteLine(expr.ToString());

// Print out the result of the tree execution.
Console.WriteLine("The return value of the block expression:");
Console.WriteLine(result);

// This code example produces the following output:
//
// The result of executing the expression tree:
// Hello World!

// The expressions from the block expression:
// Write("Hello ")
// WriteLine("World!")
// 42

// The return value of the block expression:
// 42
' Add the following directive to your file:
' Imports System.Linq.Expressions

' The block expression enables you to execute several expressions sequentually.
' When the block expression is executed,
' it returns the value of the last expression in the sequence.
Dim blockExpr As BlockExpression = Expression.Block(
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("Write", New Type() {GetType(String)}),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
)

Console.WriteLine("The result of executing the expression tree:")
' The following statement first creates an expression tree,
' then compiles it, and then executes it.           
Dim result = Expression.Lambda(Of Func(Of Integer))(blockExpr).Compile()()

' Print the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:")
For Each expr In blockExpr.Expressions
    Console.WriteLine(expr.ToString())
Next

' Print the result of the tree execution.
Console.WriteLine("The return value of the block expression:")
Console.WriteLine(result)

' This code example produces the following output:
'
' The result of executing the expression tree:
' Hello World!

' The expressions from the block expression:
' Write("Hello ")
' WriteLine("World!")
' 42

' The return value of the block expression:
' 42

构造函数

Expression()

构造 Expression的新实例。

Expression(ExpressionType, Type)
已过时.
已过时.

初始化 Expression 类的新实例。

属性

CanReduce

指示节点可以缩减为更简单的节点。 如果返回 true,则可以调用 Reduce()以生成化简形式。

NodeType

获取此 Expression的节点类型。

Type

获取此 Expression 表示的表达式的静态类型。

方法

Accept(ExpressionVisitor)

调度到此节点类型的特定访问方法。 例如,MethodCallExpression 调用 VisitMethodCall(MethodCallExpression)

Add(Expression, Expression, MethodInfo)

创建表示没有溢出检查的算术加法运算的 BinaryExpression。 可以指定实现方法。

Add(Expression, Expression)

创建表示没有溢出检查的算术加法运算的 BinaryExpression

AddAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示没有溢出检查的加法分配操作的 BinaryExpression

AddAssign(Expression, Expression, MethodInfo)

创建表示没有溢出检查的加法分配操作的 BinaryExpression

AddAssign(Expression, Expression)

创建表示没有溢出检查的加法分配操作的 BinaryExpression

AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

创建表示具有溢出检查的加法分配操作的 BinaryExpression

AddAssignChecked(Expression, Expression, MethodInfo)

创建表示具有溢出检查的加法分配操作的 BinaryExpression

AddAssignChecked(Expression, Expression)

创建表示具有溢出检查的加法分配操作的 BinaryExpression

AddChecked(Expression, Expression, MethodInfo)

创建表示具有溢出检查的算术加法运算的 BinaryExpression。 可以指定实现方法。

AddChecked(Expression, Expression)

创建表示具有溢出检查的算术加法运算的 BinaryExpression

And(Expression, Expression, MethodInfo)

创建表示按位 AND 操作的 BinaryExpression。 可以指定实现方法。

And(Expression, Expression)

创建表示按位 AND 操作的 BinaryExpression

AndAlso(Expression, Expression, MethodInfo)

创建一个 BinaryExpression,该 BinaryExpression 表示条件 AND 操作数,仅当第一个操作数解析为 true 时才计算第二个操作数。 可以指定实现方法。

AndAlso(Expression, Expression)

创建一个 BinaryExpression,该 BinaryExpression 表示条件 AND 运算,仅当第一个操作数的计算结果为 true时计算第二个操作数。

AndAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示按位 AND 赋值操作的 BinaryExpression

AndAssign(Expression, Expression, MethodInfo)

创建表示按位 AND 赋值操作的 BinaryExpression

AndAssign(Expression, Expression)

创建表示按位 AND 赋值操作的 BinaryExpression

ArrayAccess(Expression, Expression[])

创建用于访问数组的 IndexExpression

ArrayAccess(Expression, IEnumerable<Expression>)

创建用于访问多维数组的 IndexExpression

ArrayIndex(Expression, Expression)

创建表示将数组索引运算符应用于排名第一的数组的 BinaryExpression

ArrayIndex(Expression, Expression[])

创建表示将数组索引运算符应用于多维数组的 MethodCallExpression

ArrayIndex(Expression, IEnumerable<Expression>)

创建表示将数组索引运算符应用于多个排名数组的 MethodCallExpression

ArrayLength(Expression)

创建一个表示获取一维数组长度的表达式的 UnaryExpression

Assign(Expression, Expression)

创建表示工作分配操作的 BinaryExpression

Bind(MemberInfo, Expression)

创建表示字段或属性初始化的 MemberAssignment

Bind(MethodInfo, Expression)

创建一个 MemberAssignment,该 MemberAssignment 表示使用属性访问器方法初始化成员。

Block(Expression, Expression, Expression, Expression, Expression)

创建一个包含五个表达式且没有变量的 BlockExpression

Block(Expression, Expression, Expression, Expression)

创建一个包含四个表达式且没有变量的 BlockExpression

Block(Expression, Expression, Expression)

创建一个包含三个表达式且没有变量的 BlockExpression

Block(Expression, Expression)

创建一个包含两个表达式且没有变量的 BlockExpression

Block(Expression[])

创建一个包含给定表达式且没有变量的 BlockExpression

Block(IEnumerable<Expression>)

创建一个包含给定表达式且没有变量的 BlockExpression

Block(IEnumerable<ParameterExpression>, Expression[])

创建一个包含给定变量和表达式的 BlockExpression

Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)

创建一个包含给定变量和表达式的 BlockExpression

Block(Type, Expression[])

创建一个包含给定表达式的 BlockExpression,没有变量,并且具有特定的结果类型。

Block(Type, IEnumerable<Expression>)

创建一个包含给定表达式的 BlockExpression,没有变量,并且具有特定的结果类型。

Block(Type, IEnumerable<ParameterExpression>, Expression[])

创建一个包含给定变量和表达式的 BlockExpression

Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)

创建一个包含给定变量和表达式的 BlockExpression

Break(LabelTarget, Expression, Type)

创建一个表示具有指定类型的 break 语句的 GotoExpression。 可以指定跳转时传递给标签的值。

Break(LabelTarget, Expression)

创建表示 break 语句的 GotoExpression。 可以指定跳转时传递给标签的值。

Break(LabelTarget, Type)

创建一个表示具有指定类型的 break 语句的 GotoExpression

Break(LabelTarget)

创建表示 break 语句的 GotoExpression

Call(Expression, MethodInfo, Expression, Expression, Expression)

创建一个 MethodCallExpression,表示对采用三个参数的方法的调用。

Call(Expression, MethodInfo, Expression, Expression)

创建表示对采用两个参数的方法的调用的 MethodCallExpression

Call(Expression, MethodInfo, Expression[])

创建表示对采用参数的方法的调用的 MethodCallExpression

Call(Expression, MethodInfo, IEnumerable<Expression>)

创建表示对采用参数的方法的调用的 MethodCallExpression

Call(Expression, MethodInfo)

创建表示对不带参数的方法的调用的 MethodCallExpression

Call(Expression, String, Type[], Expression[])

创建一个 MethodCallExpression,该 MethodCallExpression 通过调用相应的工厂方法来表示对方法的调用。

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

创建一个 MethodCallExpression,表示对采用五个参数的静态方法的调用。

Call(MethodInfo, Expression, Expression, Expression, Expression)

创建一个 MethodCallExpression,表示对采用四个参数的静态方法的调用。

Call(MethodInfo, Expression, Expression, Expression)

创建一个 MethodCallExpression,表示对采用三个参数的静态方法的调用。

Call(MethodInfo, Expression, Expression)

创建一个 MethodCallExpression,表示对采用两个参数的静态方法的调用。

Call(MethodInfo, Expression)

创建一个 MethodCallExpression,该 MethodCallExpression 表示对采用一个参数的 static(在 Visual Basic 中Shared)方法的调用。

Call(MethodInfo, Expression[])

创建一个 MethodCallExpression,该 MethodCallExpression 表示对具有参数的 static(Visual Basic 中的Shared)方法的调用。

Call(MethodInfo, IEnumerable<Expression>)

创建表示对静态(在 Visual Basic 中共享)方法的调用的 MethodCallExpression

Call(Type, String, Type[], Expression[])

创建一个 MethodCallExpression,该 MethodCallExpression 表示通过调用适当的工厂方法调用 static(在 Visual Basic 中Shared)。

Catch(ParameterExpression, Expression, Expression)

创建一个表示具有 Exception 筛选器的 catch 语句和对捕获 Exception 对象的引用的 CatchBlock

Catch(ParameterExpression, Expression)

创建一个表示 catch 语句的 CatchBlock,该语句引用捕获的 Exception 对象,以便在处理程序正文中使用。

Catch(Type, Expression, Expression)

创建一个 CatchBlock,表示具有 Exception 筛选器的 catch 语句,但不引用捕获 Exception 对象。

Catch(Type, Expression)

创建表示 catch 语句的 CatchBlock

ClearDebugInfo(SymbolDocumentInfo)

创建用于清除序列点的 DebugInfoExpression

Coalesce(Expression, Expression, LambdaExpression)

创建一个表示合并操作的 BinaryExpression,给定转换函数。

Coalesce(Expression, Expression)

创建表示合并操作的 BinaryExpression

Condition(Expression, Expression, Expression, Type)

创建表示条件语句的 ConditionalExpression

Condition(Expression, Expression, Expression)

创建表示条件语句的 ConditionalExpression

Constant(Object, Type)

创建一个 ConstantExpression,该 ValueType 属性设置为指定值。

Constant(Object)

创建一个 ConstantExpression,该 Value 属性设置为指定值。

Continue(LabelTarget, Type)

创建表示具有指定类型的 continue 语句的 GotoExpression

Continue(LabelTarget)

创建表示 continue 语句的 GotoExpression

Convert(Expression, Type, MethodInfo)

创建表示为其指定实现方法的转换操作的 UnaryExpression

Convert(Expression, Type)

创建表示类型转换操作的 UnaryExpression

ConvertChecked(Expression, Type, MethodInfo)

创建一个 UnaryExpression,表示在目标类型溢出且指定实现方法时引发异常的转换操作。

ConvertChecked(Expression, Type)

创建一个 UnaryExpression,表示在目标类型溢出时引发异常的转换操作。

DebugInfo(SymbolDocumentInfo, Int32, Int32, Int32, Int32)

创建具有指定范围的 DebugInfoExpression

Decrement(Expression, MethodInfo)

创建一个表示表达式递减的 UnaryExpression 1。

Decrement(Expression)

创建一个表示表达式递减的 UnaryExpression 1。

Default(Type)

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

Divide(Expression, Expression, MethodInfo)

创建表示算术除法运算的 BinaryExpression。 可以指定实现方法。

Divide(Expression, Expression)

创建表示算术除法运算的 BinaryExpression

DivideAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示没有溢出检查的除法分配操作的 BinaryExpression

DivideAssign(Expression, Expression, MethodInfo)

创建表示没有溢出检查的除法分配操作的 BinaryExpression

DivideAssign(Expression, Expression)

创建表示没有溢出检查的除法分配操作的 BinaryExpression

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression)

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression)

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

Dynamic(CallSiteBinder, Type, Expression, Expression)

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

Dynamic(CallSiteBinder, Type, Expression)

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

Dynamic(CallSiteBinder, Type, Expression[])

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

Dynamic(CallSiteBinder, Type, IEnumerable<Expression>)

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

ElementInit(MethodInfo, Expression[])

创建一个 ElementInit,给定值数组作为第二个参数。

ElementInit(MethodInfo, IEnumerable<Expression>)

创建一个 ElementInit,给定 IEnumerable<T> 作为第二个参数。

Empty()

创建 Void 类型的空表达式。

Equal(Expression, Expression, Boolean, MethodInfo)

创建表示相等比较的 BinaryExpression。 可以指定实现方法。

Equal(Expression, Expression)

创建表示相等比较的 BinaryExpression

Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
ExclusiveOr(Expression, Expression, MethodInfo)

创建表示按位 XOR 操作的 BinaryExpression,对用户定义的类型使用 op_ExclusiveOr。 可以指定实现方法。

ExclusiveOr(Expression, Expression)

创建表示按位 XOR 操作的 BinaryExpression,对用户定义的类型使用 op_ExclusiveOr

ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示按位 XOR 分配操作的 BinaryExpression,对用户定义的类型使用 op_ExclusiveOr

ExclusiveOrAssign(Expression, Expression, MethodInfo)

创建表示按位 XOR 分配操作的 BinaryExpression,对用户定义的类型使用 op_ExclusiveOr

ExclusiveOrAssign(Expression, Expression)

创建表示按位 XOR 分配操作的 BinaryExpression,对用户定义的类型使用 op_ExclusiveOr

Field(Expression, FieldInfo)

创建表示访问字段的 MemberExpression

Field(Expression, String)

创建一个表示访问给定字段名称的字段的 MemberExpression

Field(Expression, Type, String)

创建表示访问字段的 MemberExpression

GetActionType(Type[])

创建一个 Type 对象,该对象表示具有特定类型参数的泛型 Action 委托类型。

GetDelegateType(Type[])

获取表示具有特定类型参数的泛型 Func<TResult>Action 委托类型的 Type 对象。

GetFuncType(Type[])

创建一个 Type 对象,该对象表示具有特定类型参数的泛型 Func<TResult> 委托类型。 最后一个类型参数指定所创建的委托的返回类型。

GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
Goto(LabelTarget, Expression, Type)

创建表示具有指定类型的“go to”语句的 GotoExpression。 可以指定跳转时传递给标签的值。

Goto(LabelTarget, Expression)

创建表示“go to”语句的 GotoExpression。 可以指定跳转时传递给标签的值。

Goto(LabelTarget, Type)

创建表示具有指定类型的“go to”语句的 GotoExpression

Goto(LabelTarget)

创建表示“go to”语句的 GotoExpression

GreaterThan(Expression, Expression, Boolean, MethodInfo)

创建表示“大于”数值比较的 BinaryExpression。 可以指定实现方法。

GreaterThan(Expression, Expression)

创建表示“大于”数值比较的 BinaryExpression

GreaterThanOrEqual(Expression, Expression, Boolean, MethodInfo)

创建表示“大于或等于”数值比较的 BinaryExpression

GreaterThanOrEqual(Expression, Expression)

创建表示“大于或等于”数值比较的 BinaryExpression

IfThen(Expression, Expression)

创建一个表示具有 if 语句的条件块的 ConditionalExpression

IfThenElse(Expression, Expression, Expression)

创建表示具有 ifelse 语句的条件块的 ConditionalExpression

Increment(Expression, MethodInfo)

创建一个表示表达式递增的 UnaryExpression 1。

Increment(Expression)

创建一个表示表达式值递增的 UnaryExpression 1。

Invoke(Expression, Expression[])

创建将委托或 lambda 表达式应用于参数表达式列表的 InvocationExpression

Invoke(Expression, IEnumerable<Expression>)

创建将委托或 lambda 表达式应用于参数表达式列表的 InvocationExpression

IsFalse(Expression, MethodInfo)

返回表达式的计算结果是否为 false。

IsFalse(Expression)

返回表达式的计算结果是否为 false。

IsTrue(Expression, MethodInfo)

返回表达式的计算结果是否为 true。

IsTrue(Expression)

返回表达式的计算结果是否为 true。

Label()

创建一个表示 void 类型且无名称的标签的 LabelTarget

Label(LabelTarget, Expression)

创建表示具有给定默认值的标签的 LabelExpression

Label(LabelTarget)

创建表示不带默认值的标签的 LabelExpression

Label(String)

创建表示 void 类型和给定名称的标签的 LabelTarget

Label(Type, String)

创建表示具有给定类型和名称的标签的 LabelTarget

Label(Type)

创建表示具有给定类型的标签的 LabelTarget

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

通过首先从表达式正文构造委托类型、指示是否应用结尾调用优化的参数以及参数表达式的可枚举集合来创建 LambdaExpression。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, Boolean, ParameterExpression[])

通过首先从表达式正文构造委托类型、指示是否将应用结尾调用优化的参数和参数表达式数组来创建 LambdaExpression。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, IEnumerable<ParameterExpression>)

通过首先从表达式正文构造委托类型以及参数表达式的可枚举集合来创建 LambdaExpression。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, ParameterExpression[])

通过首先从表达式正文和参数表达式数组构造委托类型来创建 LambdaExpression。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)

通过首先从表达式正文构造委托类型、lambda 的名称、指示是否应用结尾调用优化的参数以及参数表达式的可枚举集合来创建 LambdaExpression。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, String, IEnumerable<ParameterExpression>)

通过首先从表达式正文、lambda 的名称和参数表达式的可枚举集合构造委托类型来创建 LambdaExpression。 在编译时不知道委托类型时,可以使用它。

Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)

创建一个在编译时已知委托类型的 LambdaExpression,该参数指示是否将应用结尾调用优化,以及参数表达式的可枚举集合。

Lambda(Type, Expression, Boolean, ParameterExpression[])

创建一个在编译时已知委托类型的 LambdaExpression,该参数指示是否将应用结尾调用优化,以及参数表达式数组。

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

创建一个 LambdaExpression,其中委托类型在编译时已知,并具有参数表达式的可枚举集合。

Lambda(Type, Expression, ParameterExpression[])

使用参数表达式数组创建一个 LambdaExpression,其中委托类型在编译时已知。

Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

创建一个 LambdaExpression,其中委托类型在编译时已知,其名称为 lambda、一个指示是否将应用结尾调用优化的参数,以及参数表达式的可枚举集合。

Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)

创建一个 LambdaExpression,其中委托类型在编译时已知,其中包含 lambda 的名称和参数表达式的可枚举集合。

Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)

创建一个在编译时已知委托类型的 Expression<TDelegate>,该参数指示是否将应用结尾调用优化,以及参数表达式的可枚举集合。

Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])

创建一个在编译时已知委托类型的 Expression<TDelegate>,该参数指示是否将应用结尾调用优化,以及参数表达式数组。

Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)

创建一个 Expression<TDelegate>,其中委托类型在编译时已知,并具有参数表达式的可枚举集合。

Lambda<TDelegate>(Expression, ParameterExpression[])

使用参数表达式数组创建一个 Expression<TDelegate>,其中委托类型在编译时已知。

Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)

创建一个 Expression<TDelegate>,其中委托类型在编译时已知,其名称为 lambda、指示是否将应用结尾调用优化的参数以及参数表达式的可枚举集合。

Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)

创建一个 Expression<TDelegate>,其中委托类型在编译时已知,其名称为 lambda,以及参数表达式的可枚举集合。

LeftShift(Expression, Expression, MethodInfo)

创建表示按位左移操作的 BinaryExpression

LeftShift(Expression, Expression)

创建表示按位左移操作的 BinaryExpression

LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示按位左移赋值操作的 BinaryExpression

LeftShiftAssign(Expression, Expression, MethodInfo)

创建表示按位左移赋值操作的 BinaryExpression

LeftShiftAssign(Expression, Expression)

创建表示按位左移赋值操作的 BinaryExpression

LessThan(Expression, Expression, Boolean, MethodInfo)

创建表示“小于”数值比较的 BinaryExpression

LessThan(Expression, Expression)

创建表示“小于”数值比较的 BinaryExpression

LessThanOrEqual(Expression, Expression, Boolean, MethodInfo)

创建表示“小于或等于”数值比较的 BinaryExpression

LessThanOrEqual(Expression, Expression)

创建表示“小于或等于”数值比较的 BinaryExpression

ListBind(MemberInfo, ElementInit[])

创建成员是字段或属性的 MemberListBinding

ListBind(MemberInfo, IEnumerable<ElementInit>)

创建成员是字段或属性的 MemberListBinding

ListBind(MethodInfo, ElementInit[])

基于指定的属性访问器方法创建 MemberListBinding 对象。

ListBind(MethodInfo, IEnumerable<ElementInit>)

基于指定的属性访问器方法创建 MemberListBinding

ListInit(NewExpression, ElementInit[])

创建一个使用指定 ElementInit 对象初始化集合的 ListInitExpression

ListInit(NewExpression, Expression[])

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

ListInit(NewExpression, IEnumerable<ElementInit>)

创建一个使用指定 ElementInit 对象初始化集合的 ListInitExpression

ListInit(NewExpression, IEnumerable<Expression>)

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

ListInit(NewExpression, MethodInfo, Expression[])

创建一个使用指定方法将元素添加到集合的 ListInitExpression

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

创建一个使用指定方法将元素添加到集合的 ListInitExpression

Loop(Expression, LabelTarget, LabelTarget)

使用给定正文创建 LoopExpression

Loop(Expression, LabelTarget)

使用给定正文和中断目标创建 LoopExpression

Loop(Expression)

使用给定正文创建 LoopExpression

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo, LambdaExpression)

通过调用适当的工厂方法,根据左侧操作数、右操作数、实现方法和类型转换函数创建 BinaryExpression

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo)

通过调用适当的工厂方法,根据左侧操作数、右操作数和实现方法创建 BinaryExpression

MakeBinary(ExpressionType, Expression, Expression)

通过调用适当的工厂方法,根据左右操作数创建一个 BinaryExpression

MakeCatchBlock(Type, ParameterExpression, Expression, Expression)

创建表示具有指定元素的 catch 语句的 CatchBlock

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression)

创建表示由提供的 CallSiteBinder 和四个参数绑定的动态操作的 DynamicExpression

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression)

创建一个 DynamicExpression,该 DynamicExpression 表示由提供的 CallSiteBinder 和三个参数绑定的动态操作。

MakeDynamic(Type, CallSiteBinder, Expression, Expression)

创建表示由提供的 CallSiteBinder 和两个参数绑定的动态操作的 DynamicExpression

MakeDynamic(Type, CallSiteBinder, Expression)

创建表示由提供的 CallSiteBinder 和一个参数绑定的动态操作的 DynamicExpression

MakeDynamic(Type, CallSiteBinder, Expression[])

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

MakeDynamic(Type, CallSiteBinder, IEnumerable<Expression>)

创建一个表示由提供的 CallSiteBinder绑定的动态操作的 DynamicExpression

MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)

创建表示指定 GotoExpressionKind跳跃的 GotoExpression。 还可以指定在跳转时传递给标签的值。

MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>)

创建一个表示访问对象中索引属性的 IndexExpression

MakeMemberAccess(Expression, MemberInfo)

创建表示访问字段或属性的 MemberExpression

MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>)

创建表示具有指定元素的 try 块的 TryExpression

MakeUnary(ExpressionType, Expression, Type, MethodInfo)

通过调用适当的工厂方法创建一个 UnaryExpression(给定操作数和实现方法)。

MakeUnary(ExpressionType, Expression, Type)

通过调用适当的工厂方法创建一个 UnaryExpression(给定操作数)。

MemberBind(MemberInfo, IEnumerable<MemberBinding>)

创建表示字段或属性成员的递归初始化的 MemberMemberBinding

MemberBind(MemberInfo, MemberBinding[])

创建表示字段或属性成员的递归初始化的 MemberMemberBinding

MemberBind(MethodInfo, IEnumerable<MemberBinding>)

创建一个 MemberMemberBinding,该 MemberMemberBinding 表示使用属性访问器方法访问的成员的成员的递归初始化。

MemberBind(MethodInfo, MemberBinding[])

创建一个 MemberMemberBinding,该 MemberMemberBinding 表示使用属性访问器方法访问的成员的成员的递归初始化。

MemberInit(NewExpression, IEnumerable<MemberBinding>)

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

MemberInit(NewExpression, MemberBinding[])

创建 MemberInitExpression

MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
Modulo(Expression, Expression, MethodInfo)

创建表示算术余数运算的 BinaryExpression

Modulo(Expression, Expression)

创建表示算术余数运算的 BinaryExpression

ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示余数赋值操作的 BinaryExpression

ModuloAssign(Expression, Expression, MethodInfo)

创建表示余数赋值操作的 BinaryExpression

ModuloAssign(Expression, Expression)

创建表示余数赋值操作的 BinaryExpression

Multiply(Expression, Expression, MethodInfo)

创建表示没有溢出检查的算术乘法运算的 BinaryExpression

Multiply(Expression, Expression)

创建表示没有溢出检查的算术乘法运算的 BinaryExpression

MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示没有溢出检查的乘法赋值操作的 BinaryExpression

MultiplyAssign(Expression, Expression, MethodInfo)

创建表示没有溢出检查的乘法赋值操作的 BinaryExpression

MultiplyAssign(Expression, Expression)

创建表示没有溢出检查的乘法赋值操作的 BinaryExpression

MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

创建表示具有溢出检查的乘法赋值操作的 BinaryExpression

MultiplyAssignChecked(Expression, Expression, MethodInfo)

创建表示具有溢出检查的乘法赋值操作的 BinaryExpression

MultiplyAssignChecked(Expression, Expression)

创建表示具有溢出检查的乘法赋值操作的 BinaryExpression

MultiplyChecked(Expression, Expression, MethodInfo)

创建表示具有溢出检查的算术乘法运算的 BinaryExpression

MultiplyChecked(Expression, Expression)

创建表示具有溢出检查的算术乘法运算的 BinaryExpression

Negate(Expression, MethodInfo)

创建表示算术求反运算的 UnaryExpression

Negate(Expression)

创建表示算术求反运算的 UnaryExpression

NegateChecked(Expression, MethodInfo)

创建一个表示具有溢出检查的算术求反运算的 UnaryExpression。 可以指定实现方法。

NegateChecked(Expression)

创建一个表示具有溢出检查的算术求反运算的 UnaryExpression

New(ConstructorInfo, Expression[])

创建一个表示使用指定参数调用指定构造函数的 NewExpression

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

创建一个表示使用指定参数调用指定构造函数的 NewExpression。 指定访问构造函数初始化字段的成员。

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

创建一个表示使用指定参数调用指定构造函数的 NewExpression。 访问构造函数初始化字段的成员被指定为数组。

New(ConstructorInfo, IEnumerable<Expression>)

创建一个表示使用指定参数调用指定构造函数的 NewExpression

New(ConstructorInfo)

创建一个表示调用不带参数的指定构造函数的 NewExpression

New(Type)

创建表示调用指定类型的无参数构造函数的 NewExpression

NewArrayBounds(Type, Expression[])

创建表示创建具有指定排名的数组的 NewArrayExpression

NewArrayBounds(Type, IEnumerable<Expression>)

创建表示创建具有指定排名的数组的 NewArrayExpression

NewArrayInit(Type, Expression[])

创建表示创建一维数组并从元素列表中初始化它的 NewArrayExpression

NewArrayInit(Type, IEnumerable<Expression>)

创建表示创建一维数组并从元素列表中初始化它的 NewArrayExpression

Not(Expression, MethodInfo)

创建表示按位补运算的 UnaryExpression。 可以指定实现方法。

Not(Expression)

创建表示按位补运算的 UnaryExpression

NotEqual(Expression, Expression, Boolean, MethodInfo)

创建表示不相等比较的 BinaryExpression

NotEqual(Expression, Expression)

创建表示不相等比较的 BinaryExpression

OnesComplement(Expression, MethodInfo)

返回表示补数的表达式。

OnesComplement(Expression)

返回表示补数的表达式。

Or(Expression, Expression, MethodInfo)

创建表示按位 OR 操作的 BinaryExpression

Or(Expression, Expression)

创建表示按位 OR 操作的 BinaryExpression

OrAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示按位 OR 赋值操作的 BinaryExpression

OrAssign(Expression, Expression, MethodInfo)

创建表示按位 OR 赋值操作的 BinaryExpression

OrAssign(Expression, Expression)

创建表示按位 OR 赋值操作的 BinaryExpression

OrElse(Expression, Expression, MethodInfo)

创建一个 BinaryExpression,该 BinaryExpression 表示条件 OR 运算,仅当第一个操作数的计算结果为 false时计算第二个操作数。

OrElse(Expression, Expression)

创建一个 BinaryExpression,该 BinaryExpression 表示条件 OR 运算,仅当第一个操作数的计算结果为 false时计算第二个操作数。

Parameter(Type, String)

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

Parameter(Type)

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

PostDecrementAssign(Expression, MethodInfo)

创建一个 UnaryExpression,表示表达式的赋值,后跟原始表达式的 1 个后续递减。

PostDecrementAssign(Expression)

创建一个 UnaryExpression,表示表达式的赋值,后跟原始表达式的 1 个后续递减。

PostIncrementAssign(Expression, MethodInfo)

创建一个 UnaryExpression,该 UnaryExpression 表示表达式的赋值,后跟原始表达式的后续增量 1。

PostIncrementAssign(Expression)

创建一个 UnaryExpression,该 UnaryExpression 表示表达式的赋值,后跟原始表达式的后续增量 1。

Power(Expression, Expression, MethodInfo)

创建一个表示将数字提升为幂的 BinaryExpression

Power(Expression, Expression)

创建一个表示将数字提升为幂的 BinaryExpression

PowerAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建一个 BinaryExpression,该 BinaryExpression 表示将表达式提升为幂并将结果赋回表达式。

PowerAssign(Expression, Expression, MethodInfo)

创建一个 BinaryExpression,该 BinaryExpression 表示将表达式提升为幂并将结果赋回表达式。

PowerAssign(Expression, Expression)

创建一个 BinaryExpression,该 BinaryExpression 表示将表达式提升为幂并将结果赋回表达式。

PreDecrementAssign(Expression, MethodInfo)

创建一个 UnaryExpression,该 UnaryExpression 将表达式递减 1,并将结果赋回表达式。

PreDecrementAssign(Expression)

创建一个 UnaryExpression,该 UnaryExpression 将表达式递减 1,并将结果赋回表达式。

PreIncrementAssign(Expression, MethodInfo)

创建一个 UnaryExpression,该 UnaryExpression 将表达式递增 1 并将结果赋回表达式。

PreIncrementAssign(Expression)

创建一个 UnaryExpression,该 UnaryExpression 将表达式递增 1 并将结果赋回表达式。

Property(Expression, MethodInfo)

创建一个表示使用属性访问器方法访问属性的 MemberExpression

Property(Expression, PropertyInfo, Expression[])

创建表示对索引属性的访问权限的 IndexExpression

Property(Expression, PropertyInfo, IEnumerable<Expression>)

创建表示对索引属性的访问权限的 IndexExpression

Property(Expression, PropertyInfo)

创建表示访问属性的 MemberExpression

Property(Expression, String, Expression[])

创建表示对索引属性的访问权限的 IndexExpression

Property(Expression, String)

创建表示访问属性的 MemberExpression

Property(Expression, Type, String)

创建访问属性 MemberExpression

PropertyOrField(Expression, String)

创建表示访问属性或字段的 MemberExpression

Quote(Expression)

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

Reduce()

将此节点减少为更简单的表达式。 如果 CanReduce 返回 true,则应返回有效的表达式。 此方法可以返回必须自行减少的另一个节点。

ReduceAndCheck()

将此节点减少为更简单的表达式。 如果 CanReduce 返回 true,则应返回有效的表达式。 此方法可以返回必须自行减少的另一个节点。

ReduceExtensions()

将表达式减少为已知节点类型(不是扩展节点),或者仅返回表达式(如果它已是已知类型)。

ReferenceEqual(Expression, Expression)

创建表示引用相等比较的 BinaryExpression

ReferenceNotEqual(Expression, Expression)

创建表示引用不相等比较的 BinaryExpression

Rethrow()

创建表示重新引发异常的 UnaryExpression

Rethrow(Type)

创建表示具有给定类型的异常的重新引发的 UnaryExpression

Return(LabelTarget, Expression, Type)

创建表示具有指定类型的返回语句的 GotoExpression。 可以指定跳转时传递给标签的值。

Return(LabelTarget, Expression)

创建表示返回语句的 GotoExpression。 可以指定跳转时传递给标签的值。

Return(LabelTarget, Type)

创建表示具有指定类型的返回语句的 GotoExpression

Return(LabelTarget)

创建表示返回语句的 GotoExpression

RightShift(Expression, Expression, MethodInfo)

创建表示按位右移操作的 BinaryExpression

RightShift(Expression, Expression)

创建表示按位右移操作的 BinaryExpression

RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建表示按位右移赋值操作的 BinaryExpression

RightShiftAssign(Expression, Expression, MethodInfo)

创建表示按位右移赋值操作的 BinaryExpression

RightShiftAssign(Expression, Expression)

创建表示按位右移赋值操作的 BinaryExpression

RuntimeVariables(IEnumerable<ParameterExpression>)

创建 RuntimeVariablesExpression实例。

RuntimeVariables(ParameterExpression[])

创建 RuntimeVariablesExpression实例。

Subtract(Expression, Expression, MethodInfo)

创建表示没有溢出检查的算术减法运算的 BinaryExpression

Subtract(Expression, Expression)

创建表示没有溢出检查的算术减法运算的 BinaryExpression

SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression)

创建一个表示没有溢出检查的减法赋值运算的 BinaryExpression

SubtractAssign(Expression, Expression, MethodInfo)

创建一个表示没有溢出检查的减法赋值运算的 BinaryExpression

SubtractAssign(Expression, Expression)

创建一个表示没有溢出检查的减法赋值运算的 BinaryExpression

SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

创建表示具有溢出检查的减法赋值运算的 BinaryExpression

SubtractAssignChecked(Expression, Expression, MethodInfo)

创建表示具有溢出检查的减法赋值运算的 BinaryExpression

SubtractAssignChecked(Expression, Expression)

创建表示具有溢出检查的减法赋值运算的 BinaryExpression

SubtractChecked(Expression, Expression, MethodInfo)

创建表示具有溢出检查的算术减法运算的 BinaryExpression

SubtractChecked(Expression, Expression)

创建表示具有溢出检查的算术减法运算的 BinaryExpression

Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

创建一个表示具有默认事例的 switch 语句的 SwitchExpression

Switch(Expression, Expression, MethodInfo, SwitchCase[])

创建一个表示具有默认事例的 switch 语句的 SwitchExpression

Switch(Expression, Expression, SwitchCase[])

创建一个表示具有默认事例的 switch 语句的 SwitchExpression

Switch(Expression, SwitchCase[])

创建一个 SwitchExpression,该 switch 语句不带默认大小写。

Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

创建一个表示具有默认事例的 switch 语句的 SwitchExpression

Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])

创建一个表示具有默认事例的 switch 语句的 SwitchExpression

SwitchCase(Expression, Expression[])

创建用于 SwitchExpressionSwitchCase

SwitchCase(Expression, IEnumerable<Expression>)

创建 SwitchExpression 对象中使用的 SwitchCase 对象。

SymbolDocument(String, Guid, Guid, Guid)

创建 SymbolDocumentInfo实例。

SymbolDocument(String, Guid, Guid)

创建 SymbolDocumentInfo实例。

SymbolDocument(String, Guid)

创建 SymbolDocumentInfo实例。

SymbolDocument(String)

创建 SymbolDocumentInfo实例。

Throw(Expression, Type)

创建表示具有给定类型的异常引发的 UnaryExpression

Throw(Expression)

创建表示引发异常的 UnaryExpression

ToString()

返回 Expression的文本表示形式。

TryCatch(Expression, CatchBlock[])

创建一个表示 try 块的 TryExpression,其中包含任意数量的 catch 语句,以及错误和最终块。

TryCatchFinally(Expression, Expression, CatchBlock[])

创建一个表示 try 块的 TryExpression,其中包含任意数量的 catch 语句和最后一个块。

TryFault(Expression, Expression)

创建一个 TryExpression,该 TryExpression 表示具有故障块的 try 块,并且没有 catch 语句。

TryFinally(Expression, Expression)

创建一个 TryExpression,该 TryExpression 表示具有最终块且没有 catch 语句的 try 块。

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, MethodInfo)

创建表示一元加运算的 UnaryExpression

UnaryPlus(Expression)

创建表示一元加运算的 UnaryExpression

Unbox(Expression, Type)

创建表示显式取消装箱的 UnaryExpression

Variable(Type, String)

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

Variable(Type)

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

VisitChildren(ExpressionVisitor)

减少节点,然后在减少的表达式上调用访问者委托。 如果节点不可减少,该方法将引发异常。

适用于