Expression.Negate Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un UnaryExpression qui représente une opération de négation arithmétique.
Surcharges
Negate(Expression, MethodInfo) |
Crée un UnaryExpression qui représente une opération de négation arithmétique. |
Negate(Expression) |
Crée un UnaryExpression qui représente une opération de négation arithmétique. |
Negate(Expression, MethodInfo)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crée un UnaryExpression qui représente une opération de négation arithmétique.
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
Paramètres
- expression
- Expression
Expression auquel la propriété Operand doit être égale.
- method
- MethodInfo
MethodInfo auquel la propriété Method doit être égale.
Retours
UnaryExpression dont la propriété NodeType est égale à Negate et dont les propriétés Operand et Method ont les valeurs spécifiées.
Exceptions
expression
a la valeur null
.
method
n'est pas null
et la méthode représentée retourne void
, n'est pas static
(Shared
en Visual Basic) ou ne prend pas un argument exactement.
method
est null
et l'opérateur moins unaire n'est pas défini pour expression
.Type.
- ou -
expression
.Type (ou son type non Nullable correspondant s'il s'agit d'un type valeur Nullable) ne peut pas être assigné au type d'argument de la méthode représentée par method
.
Remarques
La Method propriété du résultat UnaryExpression est définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull sont à la IsLifted fois true
. Sinon, ils sont faux.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation de l’opération :
Si
method
n’est pasnull
et qu’il représente une méthode non void (static
Shared
en Visual Basic) qui prend un argument, il s’agit de la méthode d’implémentation pour le nœud.Si
expression
. Type est un type défini par l’utilisateur qui définit l’opérateur unaire moins, qui MethodInfo représente cet opérateur est la méthode d’implémentation.Sinon, si
expression
. Type est un type numérique, la méthode d’implémentation estnull
.
Type de nœud et lifté par rapport à non lifté
Si la méthode d’implémentation n’est pas null
:
Si
expression
. Le type est assignable au type d’argument de la méthode d’implémentation. Le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.Si les deux conditions suivantes sont remplies, le nœud est levé et le type du nœud est le type nullable qui correspond au type de retour de la méthode d’implémentation :
expression
. Type est un type de valeur nullable et le type de valeur non nullable correspondant est égal au type d’argument de la méthode d’implémentation.Le type de retour de la méthode d’implémentation est un type valeur non nullable.
Si la méthode d’implémentation est null
, le type du nœud est expression
. Type. Si expression
. Le type n’est pas nullable, le nœud n’est pas levé. Sinon, le nœud est levé.
S’applique à
Negate(Expression)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crée un UnaryExpression qui représente une opération de négation arithmétique.
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
Paramètres
- expression
- Expression
Expression auquel la propriété Operand doit être égale.
Retours
UnaryExpression dont la propriété NodeType est égale à Negate et dont la propriété Operand a la valeur spécifiée.
Exceptions
expression
a la valeur null
.
L'opérateur moins unaire n'est pas défini pour expression
.Type.
Exemples
L’exemple suivant montre comment créer une expression qui représente une opération de négation arithmétique.
// 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
Remarques
La Method propriété du résultat UnaryExpression est définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull sont à la IsLifted fois true
. Sinon, ils sont faux.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation de l’opération :
Si
expression
. Type est un type défini par l’utilisateur qui définit l’opérateur unaire moins, qui MethodInfo représente cet opérateur est la méthode d’implémentation.Sinon, si
expression
. Type est un type numérique, la méthode d’implémentation estnull
.
Type de nœud et lifté par rapport à non lifté
Si la méthode d’implémentation n’est pas null
:
Si
expression
. Le type est assignable au type d’argument de la méthode d’implémentation. Le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.Si les deux conditions suivantes sont remplies, le nœud est levé et le type du nœud est le type nullable qui correspond au type de retour de la méthode d’implémentation :
expression
. Type est un type de valeur nullable et le type de valeur non nullable correspondant est égal au type d’argument de la méthode d’implémentation.Le type de retour de la méthode d’implémentation est un type valeur non nullable.
Si la méthode d’implémentation est null
, le type du nœud est expression
. Type. Si expression
. Le type n’est pas nullable, le nœud n’est pas levé. Sinon, le nœud est levé.