Expression.Negate Expression.Negate Expression.Negate Method

定義

算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation.

オーバーロード

Negate(Expression, MethodInfo) Negate(Expression, MethodInfo) Negate(Expression, MethodInfo)

算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation.

Negate(Expression) Negate(Expression) Negate(Expression)

算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation.

Negate(Expression, MethodInfo) Negate(Expression, MethodInfo) Negate(Expression, MethodInfo)

算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation.

public:
 static System::Linq::Expressions::UnaryExpression ^ Negate(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
static member Negate : 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 プロパティと、指定した値に設定された Negate プロパティおよび Operand プロパティを含む MethodA UnaryExpression that has the NodeType property equal to Negate 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. ノードがリフトされた場合、IsLiftedIsLiftedToNullプロパティが両方とも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:

  • 場合methodnullあり、void、以外を表しますstatic(Shared Visual Basic で) を 1 つの引数を受け取るメソッドは、ノードのメソッドの実装。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.

Negate(Expression) Negate(Expression) Negate(Expression)

算術否定演算を表す UnaryExpression を作成します。Creates a UnaryExpression that represents an arithmetic negation operation.

public:
 static System::Linq::Expressions::UnaryExpression ^ Negate(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression);
static member Negate : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression

パラメーター

expression
Expression Expression Expression

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

戻り値

UnaryExpression と等しい NodeType プロパティおよび指定した値に設定された Negate プロパティを含む OperandA UnaryExpression that has the NodeType property equal to Negate 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.

次の例では、算術否定演算を表す式を作成する方法を示します。The following example demonstrates how to create an expression that represents an arithmetic negation operation.

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

// This expression represents a negation operation.
Expression negateExpr = Expression.Negate(Expression.Constant(5));

// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda<Func<int>>(negateExpr).Compile()());

// This code example produces the following output:
//
// -5

' Add the following directive to your file:
' Imports System.Linq.Expressions 

' This expression represents a negation operation.
Dim negateExpr As Expression = Expression.Negate(Expression.Constant(5))

' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(negateExpr).Compile()())

' This code example produces the following output:
'
' -5

注釈

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. ノードがリフトされた場合、IsLiftedIsLiftedToNullプロパティが両方とも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.

適用対象