Sdílet prostřednictvím


Expression.Not Metoda

Definice

Vytvoří operaci UnaryExpression bitového doplňku.

Přetížení

Name Description
Not(Expression)

Vytvoří operaci UnaryExpression bitového doplňku.

Not(Expression, MethodInfo)

Vytvoří operaci UnaryExpression bitového doplňku. Metodu implementace je možné zadat.

Not(Expression)

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

Vytvoří operaci UnaryExpression bitového doplňku.

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

Operand Nastavení Expression vlastnosti rovno.

Návraty

AUnaryExpression, který má vlastnost rovna NotNodeType a Operand vlastnost nastavena na zadanou hodnotu.

Výjimky

expression je null.

Unární operátor 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 a IsLiftedToNull vlastnosti jsou obě true. Jinak jsou false.

Implementace metody

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

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

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

Typ uzlu a zvednutí versus neschycený typ uzlu

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 implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel je zvednut a typ uzlu je typ s možnou hodnotou null, který odpovídá návratu typu implementované metody:

    • expression. Typ je typ hodnoty nullable a odpovídající typ non-nullable je roven typu argumentu implementované metody.

    • Návratový typ implementované metody je nenulový typ hodnoty.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ není nullable, uzel není zvednut. Jinak se uzel zvedne.

Platí pro

Not(Expression, MethodInfo)

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

Vytvoří operaci UnaryExpression bitového doplňku. Metodu implementace je možné zadat.

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

Operand Nastavení Expression vlastnosti rovno.

method
MethodInfo

A MethodInfo nastavit Method vlastnost rovná se.

Návraty

AUnaryExpression, který má vlastnost rovna NotNodeType a Operand a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

expression je null.

method není null a metoda, která představuje vrací void, není static (Shared v jazyce Visual Basic) nebo nebere přesně jeden argument.

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

nebo

expression. Typ (nebo odpovídající typ bez hodnoty null, pokud se jedná o typ hodnoty null) není možné přiřadit k typu argumentu metody reprezentované metodou 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 a IsLiftedToNull vlastnosti jsou obě true. Jinak jsou false.

Implementace metody

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

  • Pokud method není null a představuje non-void, static (Shared v jazyce Visual Basic), která přebírá jeden argument, je to implementace metody pro uzel.

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

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

Typ uzlu a zvednutí versus neschycený typ uzlu

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 implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel je zvednut a typ uzlu je typ s možnou hodnotou null, který odpovídá návratu typu implementované metody:

    • expression. Typ je typ hodnoty nullable a odpovídající typ hodnoty non-nullable je roven typu argumentu implementované metody.

    • Návratový typ implementované metody je nenulový typ hodnoty.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ není nullable, uzel není zvednut. Jinak se uzel zvedne.

Platí pro