Expression.Equal Méthode

Définition

Crée un BinaryExpression qui représente une comparaison d'égalité.Creates a BinaryExpression that represents an equality comparison.

Surcharges

Equal(Expression, Expression)

Crée un BinaryExpression qui représente une comparaison d'égalité.Creates a BinaryExpression that represents an equality comparison.

Equal(Expression, Expression, Boolean, MethodInfo)

Crée un BinaryExpression qui représente une comparaison d'égalité.Creates a BinaryExpression that represents an equality comparison. La méthode d'implémentation peut être spécifiée.The implementing method can be specified.

Equal(Expression, Expression)

Crée un BinaryExpression qui représente une comparaison d'égalité.Creates a BinaryExpression that represents an equality comparison.

public:
 static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression) As BinaryExpression

Paramètres

left
Expression

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

right
Expression

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

Retours

BinaryExpression

BinaryExpression dont la propriété NodeType est égale à Equal et dont les propriétés Left et Right ont les valeurs spécifiées.A BinaryExpression that has the NodeType property equal to Equal and the Left and Right properties set to the specified values.

Exceptions

left ou right est null.left or right is null.

L'opérateur d'égalité n'est pas défini pour left.Type et right.Type.The equality operator is not defined for left.Type and right.Type.

Exemples

L’exemple de code suivant montre comment créer une expression qui vérifie si les valeurs de ses deux arguments sont égales.The following code example shows how to create an expression that checks whether the values of its two arguments are equal.

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

// This expression compares the values of its two arguments.
// Both arguments need to be of the same type.
Expression equalExpr = Expression.Equal(
    Expression.Constant(42),
    Expression.Constant(45)
);

// Print out the expression.
Console.WriteLine(equalExpr.ToString());

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

// This code example produces the following output:
//
// (42 == 45)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression compares the values of its two arguments.
' Both arguments must be of the same type.
Dim equalExpr As Expression = Expression.Equal(
    Expression.Constant(42),
    Expression.Constant(45)
)

' Print the expression.
Console.WriteLine(equalExpr.ToString())

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

' This code example produces the following output:
'
' (42 == 45)
' False

Remarques

Le qui BinaryExpression en résulte a la Method propriété définie sur la méthode d’implémentation.The resulting BinaryExpression has the Method property 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é, la IsLifted propriété est true .If the node is lifted, the IsLifted property is true. Sinon, c’est false.Otherwise, it is false. La propriété IsLiftedToNull a toujours la valeur false.The IsLiftedToNull property is always false. Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.The following information describes the implementing method, the node type, and whether a node is lifted.

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 la Type propriété de left ou right représente un type défini par l’utilisateur qui surcharge l’opérateur d’égalité, le MethodInfo qui représente cette méthode est la méthode d’implémentation.If the Type property of either left or right represents a user-defined type that overloads the equality operator, the MethodInfo that represents that method is the implementing method.

  • Sinon, la méthode d’implémentation est null .Otherwise, 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’est pas null :If the implementing method is not null:

  • Si left . Tapez et right . Le type peuvent être assignés aux types d’arguments correspondants de la méthode d’implémentation, le nœud n’est pas levé.If left.Type and right.Type are assignable to the corresponding argument types 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 suivant Boolean :If the following two conditions are satisfied, the node is lifted and the type of the node is Boolean:

    • left. Tapez et right . Le type sont à la fois des types valeur dont au moins un est Nullable et les types non Nullable correspondants sont égaux aux types d’arguments correspondants de la méthode d’implémentation.left.Type and right.Type are both value types of which at least one is nullable and the corresponding non-nullable types are equal to the corresponding argument types of the implementing method.

    • Le type de retour de la méthode d’implémentation est Boolean .The return type of the implementing method is Boolean.

Si la méthode d’implémentation est null :If the implementing method is null:

  • Si left . Tapez et right . Le type n’accepte pas les valeurs NULL, le nœud n’est pas levé.If left.Type and right.Type are both non-nullable, the node is not lifted. Le type du nœud est Boolean .The type of the node is Boolean.

  • Si left . Tapez et right . Le type acceptant les valeurs NULL, le nœud est levé.If left.Type and right.Type are both nullable, the node is lifted. Le type du nœud est Boolean .The type of the node is Boolean.

Equal(Expression, Expression, Boolean, MethodInfo)

Crée un BinaryExpression qui représente une comparaison d'égalité.Creates a BinaryExpression that represents an equality comparison. La méthode d'implémentation peut être spécifiée.The implementing method can be specified.

public:
 static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, bool liftToNull, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo? method);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * bool * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression, liftToNull As Boolean, method As MethodInfo) As BinaryExpression

Paramètres

left
Expression

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

right
Expression

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

liftToNull
Boolean

true pour affecter à IsLiftedToNull la valeur true ; false pour affecter à IsLiftedToNull la valeur false.true to set IsLiftedToNull to true; false to set IsLiftedToNull to false.

method
MethodInfo

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

Retours

BinaryExpression

BinaryExpression dont la propriété NodeType est égale à Equal et dont les propriétés Left, Right, IsLiftedToNull et Method ont les valeurs spécifiées.A BinaryExpression that has the NodeType property equal to Equal and the Left, Right, IsLiftedToNull, and Method properties set to the specified values.

Exceptions

left ou right est null.left or right is null.

method n’est pas null et la méthode représentée retourne void, pas static (Shared dans Visual Basic) ou ne prend pas exactement deux arguments.method is not null and the method it represents returns void, is not static (Shared in Visual Basic), or does not take exactly two arguments.

method est null et l'opérateur d'égalité n'est pas défini pour left.Type et right.Type.method is null and the equality operator is not defined for left.Type and right.Type.

Remarques

Le qui BinaryExpression en résulte a la Method propriété définie sur la méthode d’implémentation.The resulting BinaryExpression has the Method property 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é, la IsLifted propriété a la valeur true et la IsLiftedToNull propriété est égale à liftToNull .If the node is lifted, the IsLifted property is true and the IsLiftedToNull property is equal to liftToNull. Dans le cas contraire, ils sont tous les deux false .Otherwise, they are both false. Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.The following information describes the implementing method, the node type, and whether a node is lifted.

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 pas null et qu’il représente une méthode non void, static ( Shared en Visual Basic) qui prend deux arguments, il s’agit de la méthode d’implémentation.If method is not null and it represents a non-void, static (Shared in Visual Basic) method that takes two arguments, it is the implementing method.

  • Sinon, si la Type propriété de left ou right représente un type défini par l’utilisateur qui surcharge l’opérateur d’égalité, le MethodInfo qui représente cette méthode est la méthode d’implémentation.Otherwise, if the Type property of either left or right represents a user-defined type that overloads the equality operator, the MethodInfo that represents that method is the implementing method.

  • Sinon, la méthode d’implémentation est null .Otherwise, 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’est pas null :If the implementing method is not null:

  • Si left . Tapez et right . Le type peuvent être assignés aux types d’arguments correspondants de la méthode d’implémentation, le nœud n’est pas levé.If left.Type and right.Type are assignable to the corresponding argument types 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é ; en outre, le type du nœud est Nullable Boolean si liftToNull a la valeur true ou Boolean si liftToNull est false :If the following two conditions are satisfied, the node is lifted; also, the type of the node is nullable Boolean if liftToNull is true or Boolean if liftToNull is false:

    • left. Tapez et right . Le type sont à la fois des types valeur dont au moins un est Nullable et les types non Nullable correspondants sont égaux aux types d’arguments correspondants de la méthode d’implémentation.left.Type and right.Type are both value types of which at least one is nullable and the corresponding non-nullable types are equal to the corresponding argument types of the implementing method.

    • Le type de retour de la méthode d’implémentation est Boolean .The return type of the implementing method is Boolean.

Si la méthode d’implémentation est null :If the implementing method is null:

  • Si left . Tapez et right . Le type n’accepte pas les valeurs NULL, le nœud n’est pas levé.If left.Type and right.Type are both non-nullable, the node is not lifted. Le type du nœud est Boolean .The type of the node is Boolean.

  • Si left . Tapez et right . Le type acceptant les valeurs NULL, le nœud est levé.If left.Type and right.Type are both nullable, the node is lifted. Le type du nœud est Nullable Boolean si a la valeur liftToNull true ou Boolean si liftToNull a false la valeur.The type of the node is nullable Boolean if liftToNull is true or Boolean if liftToNull is false.

S’applique à