Expression.Negate Metodo

Definizione

Crea un oggetto UnaryExpression che rappresenta un'operazione di negazione aritmetica.

Overload

Negate(Expression, MethodInfo)

Crea un oggetto UnaryExpression che rappresenta un'operazione di negazione aritmetica.

Negate(Expression)

Crea un oggetto UnaryExpression che rappresenta un'operazione di negazione aritmetica.

Negate(Expression, MethodInfo)

Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs

Crea un oggetto UnaryExpression che rappresenta un'operazione di negazione aritmetica.

public:
 static System::Linq::Expressions::UnaryExpression ^ Negate(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo? method);
static member Negate : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Negate (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 Negate 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 meno 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à del risultato UnaryExpression è 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 meno unario, che MethodInfo 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 sollevato

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 sono 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 di 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

Negate(Expression)

Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs

Crea un oggetto UnaryExpression che rappresenta un'operazione di negazione aritmetica.

public:
 static System::Linq::Expressions::UnaryExpression ^ Negate(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression);
static member Negate : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function Negate (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 Negate e la cui proprietà Operand è impostata sul valore specificato.

Eccezioni

expression è null.

L'operatore meno unario non è definito per expression.Type.

Esempio

Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta un'operazione di negazione aritmetica.

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression represents a negation operation.
Expression negateExpr = Expression.Negate(Expression.Constant(5));

// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda<Func<int>>(negateExpr).Compile()());

// This code example produces the following output:
//
// -5
' Add the following directive to your file:
' Imports System.Linq.Expressions 

' This expression represents a negation operation.
Dim negateExpr As Expression = Expression.Negate(Expression.Constant(5))

' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(negateExpr).Compile()())

' This code example produces the following output:
'
' -5

Commenti

La Method proprietà del risultato UnaryExpression è 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 meno unario, che MethodInfo 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 sollevato

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 sono 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 di 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