Sdílet prostřednictvím


Expression.Not Metoda

Definice

Vytvoří operaci UnaryExpression , která představuje bitové doplňování operace.

Přetížení

Not(Expression)

Vytvoří operaci UnaryExpression , která představuje bitové doplňování operace.

Not(Expression, MethodInfo)

Vytvoří operaci UnaryExpression , která představuje bitové doplňování operace. Je možné zadat metodu implementace.

Not(Expression)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs

Vytvoří operaci UnaryExpression , která představuje bitové doplňování operace.

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

An Expression , která nastaví Operand vlastnost na hodnotu rovna.

Návraty

Vlastnost UnaryExpression má rovnou NodeTypeNot a Operand vlastnost nastavenou na zadanou hodnotu.

Výjimky

expression je null.

Unární operátor not není definován pro expression. Typ.

Příklady

Následující příklad ukazuje, jak vytvořit výraz, který představuje logickou operaci 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

Poznámky

Vlastnost Method výsledné UnaryExpression je nastavena na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednutí, IsLifted vlastnosti a IsLiftedToNull jsou .true V opačném případě jsou false.

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud expression. Type je uživatelem definovaný typ, který definuje unární operátor not, MethodInfo který představuje tento operátor je implementovaná metoda.

  • V opačném případě platí, že pokud expression. Typ je číselný nebo logický typ, implementovaná metoda je null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud expression. Typ je možné přiřadit k typu argumentu implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementační metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zruší a typ uzlu je typ s možnou hodnotou null, který odpovídá návratovému typu implementační metody:

    • expression. Typ je typ hodnoty s možnou hodnotou null a odpovídající typ s možnou hodnotou null se rovná typu argumentu implementované metody.

    • Návratový typ implementační metody je typ hodnoty s možnou hodnotou null.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ nemá hodnotu null, uzel není zvednut. V opačném případě se uzel zruší.

Platí pro

Not(Expression, MethodInfo)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs

Vytvoří operaci UnaryExpression , která představuje bitové doplňování operace. Je možné zadat metodu implementace.

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

An Expression , která nastaví Operand vlastnost na hodnotu rovna.

method
MethodInfo

A MethodInfo , aby se vlastnost nastavil Method na hodnotu rovna.

Návraty

Vlastnost UnaryExpression a, která má NodeType vlastnost rovna Not a Operand vlastnosti a Method nastavené na zadané hodnoty.

Výjimky

expression je null.

method není null a metoda, která představuje, vrátí void, není static (Shared v jazyce Visual Basic) nebo nepřebírají přesně jeden argument.

method is null a unární operátor not není definován pro expression. Typ.

-nebo-

expression. Typ (nebo jeho odpovídající typ s možnou hodnotou null, pokud se jedná o typ hodnoty s možnou hodnotou null) není možné přiřadit k typu argumentu metody reprezentované hodnotou method.

Poznámky

Vlastnost Method výsledné UnaryExpression je nastavena na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednutí, IsLifted vlastnosti a IsLiftedToNull jsou .true V opačném případě jsou false.

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud method není null a představuje metodu bez void ( staticShared v jazyce Visual Basic), která přijímá jeden argument, je to metoda implementace pro uzel.

  • Pokud expression. Type je uživatelem definovaný typ, který definuje unární operátor not, MethodInfo který představuje tento operátor je implementovaná metoda.

  • V opačném případě platí, že pokud expression. Typ je číselný typ, implementovaná metoda je null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud expression. Typ je možné přiřadit k typu argumentu implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementační metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zruší a typ uzlu je typ s možnou hodnotou null, který odpovídá návratovému typu implementační metody:

    • expression. Typ je typ hodnoty s možnou hodnotou null a odpovídající typ hodnoty, který nemá hodnotu null, se rovná typu argumentu implementované metody.

    • Návratový typ implementační metody je typ hodnoty s možnou hodnotou null.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ nemá hodnotu null, uzel není zvednut. V opačném případě se uzel zruší.

Platí pro