Expression.ConvertChecked 方法

定义

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

重载

ConvertChecked(Expression, Type)

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

ConvertChecked(Expression, Type, MethodInfo)

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

ConvertChecked(Expression, Type)

Source:
UnaryExpression.cs
Source:
UnaryExpression.cs
Source:
UnaryExpression.cs

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

public:
 static System::Linq::Expressions::UnaryExpression ^ ConvertChecked(System::Linq::Expressions::Expression ^ expression, Type ^ type);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type);
static member ConvertChecked : System.Linq.Expressions.Expression * Type -> System.Linq.Expressions.UnaryExpression
Public Shared Function ConvertChecked (expression As Expression, type As Type) As UnaryExpression

参数

expression
Expression

要将 Expression 属性设置为与其相等的 Operand

type
Type

要将 Type 属性设置为与其相等的 Type

返回

一个 UnaryExpression,其 NodeType 属性等于 ConvertChecked,并且其 OperandType 属性设置为指定值。

例外

expressiontypenull

未定义 expression.Type 和 type 之间的转换运算符。

注解

Method生成的 UnaryExpression 的 属性设置为 实现方法。 IsLiftedToNull 属性为 false。 如果节点已解除, IsLifted 则 为 true。 否则为 false

实现方法

以下规则确定操作的实现方法:

  • 如果任一 expression个 。类型 或 type 是定义隐式或显式转换运算符的用户定义类型, MethodInfo 表示该运算符的 是实现方法。

  • 否则:

    • 如果两者都 expression为 。键入 并 type 表示数值或布尔类型,或可为 null 或不可为 null 的枚举类型,实现方法是 null

    • 如果任一 expression个 。类型 或 type 是引用类型,并且存在显式装箱、取消装箱或引用转换。 expression键入 为 type,实现方法是 null

提升与非提升

如果实现方法不是 null

  • 如果 expression为 。类型可分配给实现方法的参数类型,实现方法的返回类型可 type分配给 ,节点不会被提升。

  • 如果 任一或两者都为 expression。类型 或 type 是可为 null 的值类型,相应的不可为 null 的值类型分别等于实现方法的参数类型和返回类型,节点被提升。

如果实现方法是 null

  • 如果两者都 expression为 。键入 和 type 不可为空,节点不会提升。

  • 否则,将解除节点。

适用于

ConvertChecked(Expression, Type, MethodInfo)

Source:
UnaryExpression.cs
Source:
UnaryExpression.cs
Source:
UnaryExpression.cs

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

public:
 static System::Linq::Expressions::UnaryExpression ^ ConvertChecked(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo? method);
static member ConvertChecked : System.Linq.Expressions.Expression * Type * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function ConvertChecked (expression As Expression, type As Type, method As MethodInfo) As UnaryExpression

参数

expression
Expression

要将 Expression 属性设置为与其相等的 Operand

type
Type

要将 Type 属性设置为与其相等的 Type

method
MethodInfo

要将 MethodInfo 属性设置为与其相等的 Method

返回

一个 UnaryExpression,其 NodeType 属性等于 ConvertChecked,并且其 OperandTypeMethod 属性设置为指定值。

例外

expressiontypenull

method 不为 null 且其表示的方法返回 void;不为 static(在 Visual Basic 中不为 Shared);或者不是正好带一个参数。

未定义 expression.Type 和 type 之间的转换运算符。

- 或 -

expression.Type 不能赋给 method 所表示的方法的参数类型。

- 或 -

method 所表示的方法的返回类型不能赋给 type

- 或 -

expression.Type 或 type 为可以为 null 的值类型,并且相应的不可以为 null 的值类型不分别等于 method 所表示的方法的参数类型或返回类型。

找到多个与 method 说明相匹配的方法。

注解

Method生成的 UnaryExpression 的 属性设置为 实现方法。 IsLiftedToNull 属性为 false。 如果节点已解除, IsLifted 则 为 true。 否则为 false

实现方法

以下规则确定操作的实现方法:

  • 如果 方法不是 null,则为实现方法。 它必须表示采用一个参数的 Visual Basic) 方法中的非 void staticShared (。

  • 否则,如果任一 expression。类型 或 type 是定义隐式或显式转换运算符的用户定义类型, MethodInfo 表示该运算符的 是实现方法。

  • 否则:

    • 如果两者都 expression为 。键入 并 type 表示数值或布尔类型,或可为 null 或不可为 null 的枚举类型,实现方法是 null

    • 如果任一 expression个 。类型 或 type 是引用类型,并且存在显式装箱、取消装箱或引用转换。 expression键入 为 type,实现方法是 null

提升与非提升

如果实现方法不是 null

  • 如果 expression为 。类型可分配给实现方法的参数类型,实现方法的返回类型可 type分配给 ,节点不会被提升。

  • 如果 任一或两者都为 expression。类型 或 type 是可为 null 的值类型,相应的不可为 null 的值类型分别等于实现方法的参数类型和返回类型,节点被提升。

如果实现方法是 null

  • 如果两者都 expression为 。键入 和 type 不可为空,节点不会提升。

  • 否则,将解除节点。

适用于