Expression.Not Méthode

Définition

Crée un UnaryExpression qui représente une opération de bits de complément.Creates a UnaryExpression that represents a bitwise complement operation.

Surcharges

Not(Expression)

Crée un UnaryExpression qui représente une opération de bits de complément.Creates a UnaryExpression that represents a bitwise complement operation.

Not(Expression, MethodInfo)

Crée un UnaryExpression qui représente une opération de bits de complément.Creates a UnaryExpression that represents a bitwise complement operation. La méthode d'implémentation peut être spécifiée.The implementing method can be specified.

Not(Expression)

Crée un UnaryExpression qui représente une opération de bits de complément.Creates a UnaryExpression that represents a bitwise complement operation.

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

Paramètres

expression
Expression

Expression auquel la propriété Operand doit être égale.An Expression to set the Operand property equal to.

Retours

UnaryExpression dont la propriété NodeType est égale à Not et dont la propriété Operand a la valeur spécifiée.A UnaryExpression that has the NodeType property equal to Not and the Operand property set to the specified value.

Exceptions

expression a la valeur null.expression is null.

L'opérateur NOT unaire n'est pas défini pour expression.Type.The unary not operator is not defined for expression.Type.

Exemples

L’exemple suivant montre comment créer une expression qui représente une opération NOT logique.The following example demonstrates how to create an expression that represents a logical NOT operation.

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

Remarques

La propriété du résultant UnaryExpression a la valeur de la méthode d’implémentation. MethodThe Method property of the resulting UnaryExpression is set to the implementing method. La Type propriété est définie sur le type du nœud.The Type property is set to the type of the node. Si le nœud est levé, les IsLifted propriétés et IsLiftedToNull sont toutes les deux. trueIf the node is lifted, the IsLifted and IsLiftedToNull properties are both true. Dans le cas contraire false, il s’agit de.Otherwise, they are false.

Implémentation de la méthodeImplementing Method

Les règles suivantes déterminent la méthode d’implémentation pour l’opération :The following rules determine the implementing method for the operation:

  • Si expression. Le type est un type défini par l’utilisateur qui définit l’opérateur unaire MethodInfo not, le qui représente cet opérateur est la méthode d’implémentation.If expression.Type is a user-defined type that defines the unary not operator, the MethodInfo that represents that operator is the implementing method.

  • Sinon, si expression. Le type est un type numérique ou booléen, la méthode d' nullimplémentation est.Otherwise, if expression.Type is a numeric or Boolean type, the implementing method is null.

Type de nœud, levé et non levéNode Type and Lifted versus Non-Lifted

Si la méthode d’implémentation n' nullest pas :If the implementing method is not null:

  • Si expression. Le type peut être assigné au type d’argument de la méthode d’implémentation, le nœud n’est pas levé.If expression.Type is assignable to the argument type of the implementing method, the node is not lifted. Le type du nœud est le type de retour de la méthode d’implémentation.The type of the node is the return type of the implementing method.

  • Si les deux conditions suivantes sont satisfaites, 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 :If the following two conditions are satisfied, the node is lifted and the type of the node is the nullable type that corresponds to the return type of the implementing method:

    • expression. Le type est un type valeur Nullable et le type non Nullable correspondant est égal au type d’argument de la méthode d’implémentation.expression.Type is a nullable value type and the corresponding non-nullable type is equal to the argument type of the implementing method.

    • Le type de retour de la méthode d’implémentation est un type valeur qui n’autorise pas les valeurs NULL.The return type of the implementing method is a non-nullable value type.

Si la méthode d’implémentation nullest, le type du nœud est expression. Entrer.If the implementing method is null, the type of the node is expression.Type. Si expression. Le type n’accepte pas les valeurs NULL, le nœud n’est pas levé.If expression.Type is non-nullable, the node is not lifted. Dans le cas contraire, le nœud est levé.Otherwise, the node is lifted.

Not(Expression, MethodInfo)

Crée un UnaryExpression qui représente une opération de bits de complément.Creates a UnaryExpression that represents a bitwise complement operation. La méthode d'implémentation peut être spécifiée.The implementing method can be specified.

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

Paramètres

expression
Expression

Expression auquel la propriété Operand doit être égale.An Expression to set the Operand property equal to.

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.A MethodInfo to set the Method property equal to.

Retours

UnaryExpression dont la propriété NodeType est égale à Not et dont les propriétés Operand et Method ont les valeurs spécifiées.A UnaryExpression that has the NodeType property equal to Not and the Operand and Method properties set to the specified values.

Exceptions

expression est null.expression is 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 is not null and the method it represents returns void, is not static (Shared in Visual Basic), or does not take exactly one argument.

method est null et l'opérateur NOT unaire n'est pas défini pour expression.Type.method is null and the unary not operator is not defined for expression.Type.

ou-or- 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.expression.Type (or its corresponding non-nullable type if it is a nullable value type) is not assignable to the argument type of the method represented by method.

Remarques

La propriété du résultant UnaryExpression a la valeur de la méthode d’implémentation. MethodThe Method property of the resulting UnaryExpression is set to the implementing method. La Type propriété est définie sur le type du nœud.The Type property is set to the type of the node. Si le nœud est levé, les IsLifted propriétés et IsLiftedToNull sont toutes les deux. trueIf the node is lifted, the IsLifted and IsLiftedToNull properties are both true. Dans le cas contraire false, il s’agit de.Otherwise, they are false.

Implémentation de la méthodeImplementing Method

Les règles suivantes déterminent la méthode d’implémentation pour l’opération :The following rules determine the implementing method for the operation:

  • Si method n’est null pas et qu’il représente une méthode non static voidShared , (dans Visual Basic) qui prend un argument, il s’agit de la méthode d’implémentation pour le nœud.If method is not null and it represents a non-void, static (Shared in Visual Basic) method that takes one argument, it is the implementing method for the node.

  • Si expression. Le type est un type défini par l’utilisateur qui définit l’opérateur unaire MethodInfo not, le qui représente cet opérateur est la méthode d’implémentation.If expression.Type is a user-defined type that defines the unary not operator, the MethodInfo that represents that operator is the implementing method.

  • Sinon, si expression. Le type est un type numérique, la méthode d' nullimplémentation est.Otherwise, if expression.Type is a numeric type, the implementing method is null.

Type de nœud, levé et non levéNode Type and Lifted versus Non-Lifted

Si la méthode d’implémentation n' nullest pas :If the implementing method is not null:

  • Si expression. Le type peut être assigné au type d’argument de la méthode d’implémentation, le nœud n’est pas levé.If expression.Type is assignable to the argument type of the implementing method, the node is not lifted. Le type du nœud est le type de retour de la méthode d’implémentation.The type of the node is the return type of the implementing method.

  • Si les deux conditions suivantes sont satisfaites, 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 :If the following two conditions are satisfied, the node is lifted and the type of the node is the nullable type that corresponds to the return type of the implementing method:

    • expression. Le type est un type valeur Nullable et le type valeur non Nullable correspondant est égal au type d’argument de la méthode d’implémentation.expression.Type is a nullable value type and the corresponding non-nullable value type is equal to the argument type of the implementing method.

    • Le type de retour de la méthode d’implémentation est un type valeur qui n’autorise pas les valeurs NULL.The return type of the implementing method is a non-nullable value type.

Si la méthode d’implémentation nullest, le type du nœud est expression. Entrer.If the implementing method is null, the type of the node is expression.Type. Si expression. Le type n’accepte pas les valeurs NULL, le nœud n’est pas levé.If expression.Type is non-nullable, the node is not lifted. Dans le cas contraire, le nœud est levé.Otherwise, the node is lifted.

S’applique à