Condividi tramite


Expression.Not Metodo

Definizione

Crea un oggetto UnaryExpression che rappresenta un'operazione di complemento bit per bit.

Overload

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.

Not(Expression)

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

Not(Expression, MethodInfo)

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 non null è 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