Expression.Negate Metodo
Definizione
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 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
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 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.