Expression.Not メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ビットごとの補数演算を表す 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。
例外
expression
が null
です。
単項 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 を作成します。 実装メソッドを指定できます。
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。
例外
expression
が null
です。
method
は null
ではなく、それが表すメソッドは void
を返し、static
(Visual Basic では Shared
) ではないか、受け取る引数が 1 つだけではありません。
method
は null
で、単項 NOT 演算子は expression
.Type に対して定義されていません。
- または -
expression
.Type (または null 許容値型の場合はその対応する null 非許容型) は、method
によって表されるメソッドの引数型に代入できません。
注釈
Method結果UnaryExpressionの の プロパティは、実装メソッドに設定されます。 プロパティは Type ノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティと IsLiftedToNull プロパティは両方とも true
になります。 それ以外の場合は です false
。
メソッドの実装
次の規則は、操作の実装方法を決定します。
が でなく
null
、static
1 つの引数を受け取る void 以外の (Shared
Visual Basic では) メソッドを表す場合method
は、ノードの実装メソッドです。の場合
expression
。型は、単項 not 演算子を定義するユーザー定義型であり、 MethodInfo その演算子を表す は実装メソッドです。それ以外の場合
expression
は 。型は数値型で、実装メソッドは ですnull
。
ノードの種類とリフトされたノードと非リフト
実装メソッドが でない null
場合:
の場合
expression
。型は実装メソッドの引数型に代入可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。次の 2 つの条件が満たされた場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型になります。
expression
.型は null 許容値型で、対応する null 非許容値型は実装メソッドの引数型と等しくなります。実装メソッドの戻り値の型は null 非許容値型です。
実装メソッドが の場合、 null
ノードの型は です expression
。型。 の場合 expression
。型は null 非許容であり、ノードはリフトされません。 それ以外の場合、ノードはリフトされます。
適用対象
.NET