Expression.NegateChecked Expression.NegateChecked Expression.NegateChecked Method

定義

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking.

オーバーロード

NegateChecked(Expression) NegateChecked(Expression) NegateChecked(Expression)

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking.

NegateChecked(Expression, MethodInfo) NegateChecked(Expression, MethodInfo) NegateChecked(Expression, MethodInfo)

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking. 実装メソッドを指定できます。The implementing method can be specified.

NegateChecked(Expression) NegateChecked(Expression) NegateChecked(Expression)

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking.

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

パラメーター

expression
Expression Expression Expression

Expression プロパティを等しく設定する OperandAn Expression to set the Operand property equal to.

戻り値

UnaryExpression と等しい NodeType プロパティおよび指定した値に設定された NegateChecked プロパティを含む OperandA UnaryExpression that has the NodeType property equal to NegateChecked and the Operand property set to the specified value.

例外

expressionnullです。expression is null.

単項マイナス演算子は、expression.Type に対して定義されていません。The unary minus operator is not defined for expression.Type.

注釈

Method 結果UnaryExpressionののプロパティは、実装するメソッドに設定されます。The Method property of the resulting UnaryExpression is set to the implementing method. Typeプロパティは、ノードの型に設定されます。The Type property is set to the type of the node. ノードがリフトされているIsLifted場合IsLiftedToNull 、プロパティとtrueプロパティは両方ともです。If the node is lifted, the IsLifted and IsLiftedToNull properties are both true. それ以外の場合、false になります。Otherwise, they are false.

メソッドの実装Implementing Method

次の規則は、操作の実装方法を決定します。The following rules determine the implementing method for the operation:

  • expression場合。型は単項マイナス演算子を定義するユーザー定義型で、そのMethodInfo演算子を表すは実装メソッドです。If expression.Type is a user-defined type that defines the unary minus operator, the MethodInfo that represents that operator is the implementing method.

  • それ以外のexpression場合は。型は数値型です。実装するメソッドはnullです。Otherwise, if expression.Type is a numeric type, the implementing method is null.

ノードの種類とリフトされていない、またはリフトされていないNode Type and Lifted versus Non-Lifted

実装するメソッドがでないnull場合は、次のようになります。If the implementing method is not null:

  • expression場合。型は、実装するメソッドの引数の型に割り当てることができます。このノードはリフトされていません。If expression.Type is assignable to the argument type of the implementing method, the node is not lifted. ノードの型は、実装メソッドの戻り値の型です。The type of the node is the return type of the implementing method.

  • 次の2つの条件が満たされると、ノードがリフトされ、ノードの型が、実装するメソッドの戻り値の型に対応する null 許容型になります。If the following two conditions are satisfied, the node is lifted and the type of the node is the nullable type that corresponds to the return type of the implementing method:

    • expression.型は null 許容の値型であり、対応する null 非許容の値型は、実装するメソッドの引数の型と同じです。expression.Type is a nullable value type and the corresponding non-nullable value type is equal to the argument type of the implementing method.

    • 実装するメソッドの戻り値の型は、null 非許容の値型です。The return type of the implementing method is a non-nullable value type.

実装するメソッドがnullの場合、ノードの型はexpressionです。各種.If the implementing method is null, the type of the node is expression.Type. expression場合。型は null 非許容です。ノードはリフトされていません。If expression.Type is non-nullable, the node is not lifted. それ以外の場合は、ノードがリフトされます。Otherwise, the node is lifted.

NegateChecked(Expression, MethodInfo) NegateChecked(Expression, MethodInfo) NegateChecked(Expression, MethodInfo)

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking. 実装メソッドを指定できます。The implementing method can be specified.

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

パラメーター

expression
Expression Expression Expression

Expression プロパティを等しく設定する OperandAn Expression to set the Operand property equal to.

method
MethodInfo MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

戻り値

UnaryExpression と等しい NodeType プロパティと、指定した値に設定された NegateChecked プロパティおよび Operand プロパティを含む MethodA UnaryExpression that has the NodeType property equal to NegateChecked and the Operand and Method properties set to the specified values.

例外

expressionnull です。expression is null.

methodnull ではなく、それが表すメソッドは void を返し、static (Visual Basic では Shared) ではないか、受け取る引数が 1 つだけではありません。method is not null and the method it represents returns void, is not static (Shared in Visual Basic), or does not take exactly one argument.

methodnull で、単項マイナス演算子は expression.Type に対して定義されていません。method is null and the unary minus operator is not defined for expression.Type.

または-or- expression.Type (または null 許容値型の場合はその対応する null 非許容型) は、method によって表されるメソッドの引数型に代入できません。expression.Type (or its corresponding non-nullable type if it is a nullable value type) is not assignable to the argument type of the method represented by method.

注釈

Method 結果UnaryExpressionののプロパティは、実装するメソッドに設定されます。The Method property of the resulting UnaryExpression is set to the implementing method. Typeプロパティは、ノードの型に設定されます。The Type property is set to the type of the node. ノードがリフトされているIsLifted場合IsLiftedToNull 、プロパティとtrueプロパティは両方ともです。If the node is lifted, the IsLifted and IsLiftedToNull properties are both true. それ以外の場合、false になります。Otherwise, they are false.

メソッドの実装Implementing Method

次の規則は、操作の実装方法を決定します。The following rules determine the implementing method for the operation:

  • methodではnullなく、1つの引数を受け取るstatic voidShared以外の (Visual Basic) メソッドを表す場合は、ノードの実装メソッドです。If method is not null and it represents a non-void, static (Shared in Visual Basic) method that takes one argument, it is the implementing method for the node.

  • expression場合。型は単項マイナス演算子を定義するユーザー定義型で、そのMethodInfo演算子を表すは実装メソッドです。If expression.Type is a user-defined type that defines the unary minus operator, the MethodInfo that represents that operator is the implementing method.

  • それ以外のexpression場合は。型は数値型です。実装するメソッドはnullです。Otherwise, if expression.Type is a numeric type, the implementing method is null.

ノードの種類とリフトされていない、またはリフトされていないNode Type and Lifted versus Non-Lifted

実装するメソッドがでないnull場合は、次のようになります。If the implementing method is not null:

  • expression場合。型は、実装するメソッドの引数の型に割り当てることができます。このノードはリフトされていません。If expression.Type is assignable to the argument type of the implementing method, the node is not lifted. ノードの型は、実装メソッドの戻り値の型です。The type of the node is the return type of the implementing method.

  • 次の2つの条件が満たされると、ノードがリフトされ、ノードの型が、実装するメソッドの戻り値の型に対応する null 許容型になります。If the following two conditions are satisfied, the node is lifted and the type of the node is the nullable type that corresponds to the return type of the implementing method:

    • expression.型は null 許容の値型であり、対応する null 非許容の値型は、実装するメソッドの引数の型と同じです。expression.Type is a nullable value type and the corresponding non-nullable value type is equal to the argument type of the implementing method.

    • 実装するメソッドの戻り値の型は、null 非許容の値型です。The return type of the implementing method is a non-nullable value type.

実装するメソッドがnullの場合、ノードの型はexpressionです。各種.If the implementing method is null, the type of the node is expression.Type. expression場合。型は null 非許容です。ノードはリフトされていません。If expression.Type is non-nullable, the node is not lifted. それ以外の場合は、ノードがリフトされます。Otherwise, the node is lifted.

適用対象