Expression.Not Metoda

Definicja

Tworzy element reprezentujący bitową operację UnaryExpression uzupełniania.

Przeciążenia

Not(Expression)

Tworzy element reprezentujący bitową operację UnaryExpression uzupełniania.

Not(Expression, MethodInfo)

Tworzy element reprezentujący bitową operację UnaryExpression uzupełniania. Można określić metodę implementowania.

Not(Expression)

Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs

Tworzy element reprezentujący bitową operację UnaryExpression uzupełniania.

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

Parametry

expression
Expression

Element , Expression aby ustawić właściwość równą Operand .

Zwraca

WłaściwośćUnaryExpression, która ma właściwość równą NotNodeType i Operand właściwość ustawioną na określoną wartość.

Wyjątki

expression to null.

Jednoargumentowy operator notary nie jest zdefiniowany dla expressionelementu . Typu.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące logiczną operację 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

Uwagi

Właściwość Method wynikowej UnaryExpression jest ustawiona na metodę implementowania. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie zniesiony, IsLifted właściwości i IsLiftedToNull są oba true. W przeciwnym razie są to false.

Metoda implementująca

Następujące reguły określają metodę implementowania operacji:

  • Jeśli expression. Typ jest typem zdefiniowanym przez użytkownika, który definiuje jednoargumentowy operator not, MethodInfo który reprezentuje ten operator jest metodą implementowania.

  • W przeciwnym razie, jeśli expression. Typ jest typem liczbowym lub logicznym, metoda implementowania to null.

Typ węzła oraz węzły podniesione i niepodniesione

Jeśli metoda implementowania nie nulljest :

  • Jeśli expression. Typ jest przypisywany do typu argumentu metody implementowania, węzeł nie jest zniesiony. Typ węzła to zwracany typ metody implementowania.

  • Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła to typ dopuszczający wartość null odpowiadający typowi zwracanej metody implementowania:

    • expression. Typ jest typem wartości dopuszczanej do wartości null, a odpowiadający mu typ bez wartości null jest równy typowi argumentu metody implementowania.

    • Zwracany typ metody implementowania jest typem wartości bez wartości null.

Jeśli metoda implementowania to null, typ węzła to expression. Typu. Jeśli expression. Typ jest niepusty, węzeł nie jest zniesiony. W przeciwnym razie węzeł zostanie zniesiony.

Dotyczy

Not(Expression, MethodInfo)

Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs

Tworzy element reprezentujący bitową operację UnaryExpression uzupełniania. Można określić metodę implementowania.

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

Parametry

expression
Expression

Element , Expression aby ustawić właściwość równą Operand .

method
MethodInfo

A MethodInfo , aby ustawić właściwość równą Method .

Zwraca

WłaściwośćUnaryExpression, która ma właściwość równą NotNodeType właściwości i i MethodOperand ustawioną na określone wartości.

Wyjątki

expression to null.

method nie null jest i metoda, która reprezentuje zwraca voidwartość , nie static jest (Shared w Visual Basic) lub nie bierze dokładnie jednego argumentu.

method jest null i jednoargumentowy operator not nie jest zdefiniowany dla expression. Typu.

-lub-

expression. Typ (lub odpowiadający mu typ bez wartości null, jeśli jest to typ wartości dopuszczalnej do wartości null) nie można przypisać do typu argumentu metody reprezentowanej przez method.

Uwagi

Właściwość Method wynikowej UnaryExpression jest ustawiona na metodę implementowania. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie zniesiony, IsLifted właściwości i IsLiftedToNull są oba true. W przeciwnym razie są to false.

Metoda implementująca

Następujące reguły określają metodę implementowania operacji:

  • Jeśli method nie null jest i reprezentuje metodę niepustą ( w Visual Basic), która przyjmuje jeden argument, staticShared jest to metoda implementowania węzła.

  • Jeśli expression. Typ jest typem zdefiniowanym przez użytkownika, który definiuje jednoargumentowy operator not, MethodInfo który reprezentuje ten operator jest metodą implementowania.

  • W przeciwnym razie, jeśli expression. Typ jest typem liczbowym, metoda implementowania to null.

Typ węzła oraz węzły podniesione i niepodniesione

Jeśli metoda implementowania nie nulljest :

  • Jeśli expression. Typ jest przypisywany do typu argumentu metody implementowania, węzeł nie jest zniesiony. Typ węzła to zwracany typ metody implementowania.

  • Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła to typ dopuszczający wartość null odpowiadający typowi zwracanej metody implementowania:

    • expression. Typ jest typem wartości dopuszczanej do wartości null, a odpowiadający mu typ wartości niepustej jest równy typowi argumentu metody implementowania.

    • Zwracany typ metody implementowania jest typem wartości bez wartości null.

Jeśli metoda implementowania to null, typ węzła to expression. Typu. Jeśli expression. Typ jest niepusty, węzeł nie jest zniesiony. W przeciwnym razie węzeł zostanie zniesiony.

Dotyczy