次の方法で共有


Expression.Not メソッド

定義

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

オーバーロード

Not(Expression)

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

Not(Expression, MethodInfo)

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

Not(Expression)

ソース:
UnaryExpression.cs
ソース:
UnaryExpression.cs
ソース:
UnaryExpression.cs

ビットごとの補数演算を表す 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.Type に対して定義されていません。

次の例では、論理 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

注釈

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

メソッドの実装

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

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

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

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

実装メソッドが でない null場合:

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

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

    • expression.型は null 許容値型で、対応する null 非許容型は実装メソッドの引数型と等しくなります。

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

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

適用対象

Not(Expression, MethodInfo)

ソース:
UnaryExpression.cs
ソース:
UnaryExpression.cs
ソース:
UnaryExpression.cs

ビットごとの補数演算を表す 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);
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.Type に対して定義されていません。

- または -

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

注釈

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

メソッドの実装

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

  • が でなくnullstatic 1 つの引数を受け取る void 以外の (SharedVisual Basic では) メソッドを表す場合methodは、ノードの実装メソッドです。

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

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

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

実装メソッドが でない null場合:

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

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

    • expression.型は null 許容値型で、対応する null 非許容値型は実装メソッドの引数型と等しくなります。

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

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

適用対象