Expression.NegateChecked 方法

定义

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

重载

NegateChecked(Expression)

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

NegateChecked(Expression, MethodInfo)

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

NegateChecked(Expression)

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

public:
 static System::Linq::Expressions::UnaryExpression ^ NegateChecked(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression NegateChecked (System.Linq.Expressions.Expression expression);
static member NegateChecked : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function NegateChecked (expression As Expression) As UnaryExpression

参数

expression
Expression

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

返回

UnaryExpression

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

例外

expressionnull

没有为 expression.Type 定义一元负运算符。

注解

Method生成的UnaryExpression属性设置为实现方法。 该 Type 属性设置为节点的类型。 如果解除节点,则 IsLifted 属性 IsLiftedToNull 都是 true。 否则,它们为 false。

实现方法

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

  • 如果 expression。类型是用户定义的类型,用于定义一元减号运算符, MethodInfo 表示该运算符是实现方法。

  • 否则,如果 expression为 .类型是数值类型,实现方法是 null

节点类型和提升与非提升

如果实现方法不是 null

  • 如果 expression。类型可分配给实现方法的参数类型,不会解除节点。 节点的类型是实现方法的返回类型。

  • 如果满足以下两个条件,则解除节点,节点的类型是对应于实现方法的返回类型的可为 null 的类型:

    • expression.类型是可为 null 的值类型,相应的不可为 null 的值类型等于实现方法的参数类型。

    • 实现方法的返回类型是不可为 null 的值类型。

如果实现方法是 null,则节点的类型为 expression。类型。 如果 expression。类型不可为 null,节点不会解除。 否则,将解除节点。

适用于

NegateChecked(Expression, MethodInfo)

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

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

参数

expression
Expression

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

method
MethodInfo

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

返回

UnaryExpression

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

例外

expressionnull

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

methodnull,并且没有为 expression.Type 定义一元负运算符。

  • 或 - expression.Type(如果它是可以为 null 的值类型,则取其相应的不可以为 null 的类型)不能赋给 method 所表示的方法的参数类型。

注解

Method生成的UnaryExpression属性设置为实现方法。 该 Type 属性设置为节点的类型。 如果解除节点,则 IsLifted 属性 IsLiftedToNull 都是 true。 否则,它们为 false。

实现方法

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

  • 如果method不是null,则表示采用一个参数的 Visual Basic) 方法中的非 void, static (Shared,它是节点的实现方法。

  • 如果 expression。类型是用户定义的类型,用于定义一元减号运算符, MethodInfo 表示该运算符是实现方法。

  • 否则,如果 expression为 .类型是数值类型,实现方法是 null

节点类型和提升与非提升

如果实现方法不是 null

  • 如果 expression。类型可分配给实现方法的参数类型,不会解除节点。 节点的类型是实现方法的返回类型。

  • 如果满足以下两个条件,则解除节点,节点的类型是对应于实现方法的返回类型的可为 null 的类型:

    • expression.类型是可为 null 的值类型,相应的不可为 null 的值类型等于实现方法的参数类型。

    • 实现方法的返回类型是不可为 null 的值类型。

如果实现方法是 null,则节点的类型为 expression。类型。 如果 expression。类型不可为 null,节点不会解除。 否则,将解除节点。

适用于