Expression.Not Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 jenull
.
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 null
implementovaná 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 (static
Shared
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 jenull
.
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 null
implementovaná metoda , typ uzlu je expression
. Typ. Pokud expression
. Typ nemá hodnotu null, uzel není zvednut. V opačném případě se uzel zruší.