Expression.Not Metodo
In questo articolo
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto UnaryExpression che rappresenta un'operazione di complemento bit per bit.
Not(Expression) |
Crea un oggetto UnaryExpression che rappresenta un'operazione di complemento bit per bit. |
Not(Expression, MethodInfo) |
Crea un oggetto UnaryExpression che rappresenta un'operazione di complemento bit per bit. Il metodo di implementazione può essere specificato. |
- Origine:
- UnaryExpression.cs
- Origine:
- UnaryExpression.cs
- Origine:
- UnaryExpression.cs
Crea un oggetto UnaryExpression che rappresenta un'operazione di complemento bit per bit.
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
Parametri
- expression
- Expression
Oggetto Expression su cui impostare la proprietà Operand.
Restituisce
Oggetto UnaryExpression la cui proprietà NodeType è uguale a Not e la cui proprietà Operand è impostata sul valore specificato.
Eccezioni
expression
è null
.
L'operatore Not unario non è definito per expression
.Type.
Esempio
Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta un'operazione NOT logica.
// 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
Commenti
La Method proprietà dell'oggetto risultante UnaryExpression viene impostata sul metodo di implementazione. La Type proprietà è impostata sul tipo del nodo. Se il nodo viene sollevato, le IsLifted proprietà e IsLiftedToNull sono entrambe true
. In caso contrario, sono false
.
Metodo di implementazione
Le regole seguenti determinano il metodo di implementazione per l'operazione:
Se
expression
. Il tipo è un tipo definito dall'utente che definisce l'operatore non unario, MethodInfo che rappresenta tale operatore è il metodo di implementazione.In caso contrario, se
expression
. Il tipo è un tipo numerico o booleano, il metodo di implementazione ènull
.
Tipo di nodo e lifting rispetto a non lifted
Se il metodo di implementazione non null
è :
Se
expression
. Il tipo è assegnabile al tipo di argomento del metodo di implementazione, il nodo non viene sollevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.Se vengono soddisfatte le due condizioni seguenti, il nodo viene sollevato e il tipo del nodo è il tipo nullable che corrisponde al tipo restituito del metodo di implementazione:
expression
. Il tipo è un tipo valore nullable e il tipo non nullable corrispondente è uguale al tipo di argomento del metodo di implementazione.Il tipo restituito del metodo di implementazione è un tipo valore non nullable.
Se il metodo di implementazione è null
, il tipo del nodo è expression
. Digitare. Se expression
. Il tipo non è nullable, il nodo non viene sollevato. In caso contrario, il nodo viene sollevato.
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Origine:
- UnaryExpression.cs
- Origine:
- UnaryExpression.cs
- Origine:
- UnaryExpression.cs
Crea un oggetto UnaryExpression che rappresenta un'operazione di complemento bit per bit. Il metodo di implementazione può essere specificato.
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
Parametri
- expression
- Expression
Oggetto Expression su cui impostare la proprietà Operand.
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
Restituisce
Oggetto UnaryExpression la cui proprietà NodeType è uguale a Not e le cui proprietà Operand e Method sono impostate sui valori specificati.
Eccezioni
expression
è null
.
method
non è null
e il metodo che rappresenta restituisce void
, non è static
(Shared
in Visual Basic) o non accetta esattamente un argomento.
method
è null
e l'operatore Not unario non è definito per expression
.Type.
-oppure-
expression
.Type , o il tipo non nullable corrispondente se si tratta di un tipo nullable, non è assegnabile al tipo di argomento del metodo rappresentato da method
.
Commenti
La Method proprietà dell'oggetto risultante UnaryExpression viene impostata sul metodo di implementazione. La Type proprietà è impostata sul tipo del nodo. Se il nodo viene sollevato, le IsLifted proprietà e IsLiftedToNull sono entrambe true
. In caso contrario, sono false
.
Metodo di implementazione
Le regole seguenti determinano il metodo di implementazione per l'operazione:
Se
method
nonnull
è e rappresenta un metodo non void,static
(Shared
in Visual Basic) che accetta un argomento, è il metodo di implementazione per il nodo.Se
expression
. Il tipo è un tipo definito dall'utente che definisce l'operatore non unario, MethodInfo che rappresenta tale operatore è il metodo di implementazione.In caso contrario, se
expression
. Il tipo è un tipo numerico, il metodo di implementazione ènull
.
Tipo di nodo e lifting rispetto a non lifted
Se il metodo di implementazione non null
è :
Se
expression
. Il tipo è assegnabile al tipo di argomento del metodo di implementazione, il nodo non viene sollevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.Se vengono soddisfatte le due condizioni seguenti, il nodo viene sollevato e il tipo del nodo è il tipo nullable che corrisponde al tipo restituito del metodo di implementazione:
expression
. Il tipo è un tipo valore nullable e il tipo di valore non nullable corrispondente è uguale al tipo di argomento del metodo di implementazione.Il tipo restituito del metodo di implementazione è un tipo valore non nullable.
Se il metodo di implementazione è null
, il tipo del nodo è expression
. Digitare. Se expression
. Il tipo non è nullable, il nodo non viene sollevato. In caso contrario, il nodo viene sollevato.
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |