Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Expression.Not (Expression)

 

Data di pubblicazione: ottobre 2016

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

Spazio dei nomi:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static UnaryExpression Not(
	Expression expression
)

Parametri

expression
Type: System.Linq.Expressions.Expression

Oggetto Expression su cui impostare la proprietà Operand.

Valore restituito

Type: System.Linq.Expressions.UnaryExpression

Oggetto UnaryExpression la cui proprietà NodeType è uguale a Not e la cui proprietà Operand è impostata sul valore specificato.

Exception Condition
ArgumentNullException

expression è null.

InvalidOperationException

L'operatore not unario non è definito per expression. Tipo.

Il Method proprietà dell'oggetto risultante UnaryExpression è impostato per il metodo di implementazione. Il Type proprietà è impostata per il tipo del nodo. Se il nodo è elevato, il IsLifted e IsLiftedToNull siano entrambe true. In caso contrario, sono false.

Le regole seguenti determinano il metodo di implementazione per l'operazione:

  • Se expression. Tipo è un tipo definito dall'utente che definisce l'operatore not unario, il MethodInfo che rappresenta l'operatore è il metodo di implementazione.

  • In caso contrario, se expression. Tipo è un tipo numerico o booleano, il metodo di implementazione è null.

Se il metodo di implementazione non null:

  • Se expression. Il tipo è assegnabile al tipo di argomento del metodo di implementazione, il nodo non è elevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.

  • Se vengono soddisfatte le due condizioni seguenti, il nodo è elevato e il tipo del nodo è di tipo nullable che corrisponde al tipo restituito del metodo di implementazione:

    • expression. È un tipo di 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 di valore non nullable.

Se il metodo di implementazione è null, il tipo del nodo è expression. Tipo. Se expression. Il tipo è non nullable, il nodo non è elevato. In caso contrario, il nodo è elevato.

Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta un operatore logico non operazione.

// 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

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: