Expression.Not メソッド

定義

ビットごとの補数演算を表す UnaryExpression を作成します。

オーバーロード

名前 説明
Not(Expression)

ビットごとの補数演算を表す UnaryExpression を作成します。

Not(Expression, MethodInfo)

ビットごとの補数演算を表す UnaryExpression を作成します。 実装メソッドを指定できます。

Not(Expression)

ビットごとの補数演算を表す UnaryExpression を作成します。

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

パラメーター

expression
Expression

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

返品

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

例外

expressionnullです。

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

次の例では、論理 NOT 演算を表す式を作成する方法を示します。

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

// This expression represents a NOT operation.
Expression notExpr = Expression.Not(Expression.Constant(true));

Console.WriteLine(notExpr);

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

// This code example produces the following output:
//
// Not(True)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions 

' This expression represents a NOT operation.
Dim notExpr As Expression = Expression.Not(Expression.Constant(True))

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

' This code example produces the following output:
'
' Not(True)
' False

注釈

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

メソッドの実装

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

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

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

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

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

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

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

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

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

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

適用対象

Not(Expression, MethodInfo)

ビットごとの補数演算を表す UnaryExpression を作成します。 実装メソッドを指定できます。

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

パラメーター

expression
Expression

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

method
MethodInfo

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

返品

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

例外

expressionnullです。

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

methodnull であり、単項 not 演算子は 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 非許容であり、ノードはリフトされません。 それ以外の場合、ノードはリフトされます。

適用対象