Expression.Negate メソッド

定義

算術否定演算を表す UnaryExpression を作成します。

オーバーロード

名前 説明
Negate(Expression, MethodInfo)

算術否定演算を表す UnaryExpression を作成します。

Negate(Expression)

算術否定演算を表す UnaryExpression を作成します。

Negate(Expression, MethodInfo)

算術否定演算を表す UnaryExpression を作成します。

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
Public Shared Function Negate (expression As Expression, method As MethodInfo) As UnaryExpression

パラメーター

expression
Expression

Expression プロパティを等しい値に設定するOperand

method
MethodInfo

MethodInfo プロパティを等しく設定するMethod

返品

UnaryExpression プロパティが NodeType と等しく、NegateプロパティとOperandプロパティが指定した値に設定されているMethod

例外

expressionnullです。

methodnull されず、それが表すメソッドは voidを返すか、 static されていない (Visual Basic ではShared )、または 1 つの引数を受け取りません。

methodnull であり、単項マイナス演算子は expressionに対して定義されていません。型。

-または-

expression.型 (または null 許容値型の場合は対応する null 非許容型) は、 methodで表されるメソッドの引数型に割り当てできません。

注釈

結果のMethodUnaryExpression プロパティは、実装メソッドに設定されます。 Type プロパティは、ノードの型に設定されます。 ノードがリフトされると、 IsLifted プロパティと IsLiftedToNull プロパティの両方が trueされます。 それ以外の場合は false です。

メソッドの実装

次の規則は、操作の実装方法を決定します。

  • methodnullされず、1 つの引数を受け取る void 以外のstatic (Visual Basic のShared) メソッドを表す場合は、ノードの実装メソッドです。

  • expression場合。型は、単項マイナス演算子を定義するユーザー定義型で、その演算子を表すMethodInfoが実装メソッドです。

  • それ以外の場合( expression場合)。型は数値型で、実装メソッドは null

ノードの種類とリフトされたノードと非リフト

実装メソッドが nullされていない場合:

  • expression場合。型は実装メソッドの引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。

  • 次の 2 つの条件が満たされている場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。

    • expression.型は null 許容値型で、対応する null 非許容値型は実装メソッドの引数型と同じです。

    • 実装メソッドの返り値の型は非null許容型です。

実装メソッドが null場合、ノードの型は expression。型。 expression場合。型は null 非許容であり、ノードはリフトされません。 それ以外の場合、ノードはリフトされます。

適用対象

Negate(Expression)

算術否定演算を表す UnaryExpression を作成します。

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
Public Shared Function Negate (expression As Expression) As UnaryExpression

パラメーター

expression
Expression

Expression プロパティを等しい値に設定するOperand

返品

UnaryExpression プロパティが NodeType と等しく、Negate プロパティが指定した値に設定されているOperand

例外

expressionnullです。

単項マイナス演算子は、 expressionに対して定義されていません。型。

次の例では、算術否定演算を表す式を作成する方法を示します。

// 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

注釈

結果のMethodUnaryExpression プロパティは、実装メソッドに設定されます。 Type プロパティは、ノードの型に設定されます。 ノードがリフトされると、 IsLifted プロパティと IsLiftedToNull プロパティの両方が trueされます。 それ以外の場合は false です。

メソッドの実装

次の規則は、操作の実装方法を決定します。

  • expression場合。型は、単項マイナス演算子を定義するユーザー定義型で、その演算子を表すMethodInfoが実装メソッドです。

  • それ以外の場合( expression場合)。型は数値型で、実装メソッドは null

ノードの種類とリフトされたノードと非リフト

実装メソッドが nullされていない場合:

  • expression場合。型は実装メソッドの引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。

  • 次の 2 つの条件が満たされている場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。

    • expression.型は null 許容値型で、対応する null 非許容値型は実装メソッドの引数型と同じです。

    • 実装メソッドの返り値の型は非null許容型です。

実装メソッドが null場合、ノードの型は expression。型。 expression場合。型は null 非許容であり、ノードはリフトされません。 それ以外の場合、ノードはリフトされます。

適用対象