Partager via


Expression.Equal Méthode

Définition

Crée un BinaryExpression qui représente une comparaison d’égalité.

Surcharges

Nom Description
Equal(Expression, Expression)

Crée un BinaryExpression qui représente une comparaison d’égalité.

Equal(Expression, Expression, Boolean, MethodInfo)

Crée un BinaryExpression qui représente une comparaison d’égalité. La méthode d’implémentation peut être spécifiée.

Equal(Expression, Expression)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs

Crée un BinaryExpression qui représente une comparaison d’égalité.

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

Pour Expression définir la Left propriété égale à.

right
Expression

Pour Expression définir la Right propriété égale à.

Retours

Qui BinaryExpression a la NodeType propriété égale à Equal et les LeftRight propriétés définies sur les valeurs spécifiées.

Exceptions

left ou right est null.

L’opérateur d’égalité n’est pas défini pour left. Type et 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.

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

La propriété obtenue BinaryExpression est Method 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é, la IsLifted propriété est true. Sinon, c’est false. La propriété IsLiftedToNull a toujours la valeur false. Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.

Implémentation de la méthode

Les règles suivantes déterminent la méthode d’implémentation de l’opération :

  • Si la propriété de l’un Typeleft ou right l’autre représente un type défini par l’utilisateur qui surcharge l’opérateur d’égalité, la MethodInfo méthode qui représente cette méthode est la méthode d’implémentation.

  • Sinon, la méthode d’implémentation est null.

Type de nœud et lifted et non lifted

Si la méthode d’implémentation n’est pas null:

  • Si left. Type et right. Le type est assignable aux types d’arguments correspondants 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 satisfaites, le nœud est levé et le type du nœud est Boolean:

    • left.Type et right.Type sont tous deux des types valeur dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d'argument correspondants de la méthode d'implémentation.

    • Le type de retour de la méthode d’implémentation est Boolean.

Si la méthode d’implémentation est null:

  • Si left.Type et right.Type sont tous les deux non-nullables, le nœud n’est pas soulevé. Le type du nœud est Boolean.

  • Si left.Type et right.Type autorisent tous deux la valeur NULL, le nœud est élevé. Le type du nœud est Boolean.

S’applique à

Equal(Expression, Expression, Boolean, MethodInfo)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs

Crée un BinaryExpression qui représente une comparaison d’égalité. La méthode d’implémentation peut être spécifiée.

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

Pour Expression définir la Left propriété égale à.

right
Expression

Pour Expression définir la Right propriété égale à.

liftToNull
Boolean

true à définir IsLiftedToNulltruesur ; false à définir IsLiftedToNull sur false.

method
MethodInfo

A MethodInfo pour définir la Method propriété égale à.

Retours

Qui BinaryExpression a la NodeType propriété égale à Equal et les Leftpropriétés , Right, IsLiftedToNullet Method les propriétés définies sur les valeurs spécifiées.

Exceptions

left ou right est null.

method n’est pas null et la méthode qu’elle représente renvoie void, n’est pas static (Shared en Visual Basic) ou ne prend pas exactement deux arguments.

method est null et l’opérateur d’égalité n’est pas défini pour left. Type et right. Type.

Remarques

La propriété obtenue BinaryExpression est Method 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é, la IsLifted propriété est true et la IsLiftedToNull propriété est égale à liftToNull. Sinon, ils sont tous les deux false. Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.

Implémentation de la méthode

Les règles suivantes déterminent la méthode d’implémentation de l’opération :

  • Si method ce n’est pas null le cas et qu’elle représente une méthode non vide ( staticShared en Visual Basic) qui accepte deux arguments, il s’agit de la méthode d’implémentation.

  • Sinon, si la propriété de l’un Typeleft ou right l’autre représente un type défini par l’utilisateur qui surcharge l’opérateur d’égalité, la MethodInfo méthode qui représente cette méthode est la méthode d’implémentation.

  • Sinon, la méthode d’implémentation est null.

Type de nœud et lifted et non lifted

Si la méthode d’implémentation n’est pas null:

  • Si left. Type et right. Le type est assignable aux types d’arguments correspondants 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 satisfaites, le nœud est levé ; en outre, le type du nœud est nullable Boolean s’il liftToNull s’agit true ou Boolean s’il s’agit liftToNullfalsede :

    • left.Type et right.Type sont tous deux des types valeur dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d'argument correspondants de la méthode d'implémentation.

    • Le type de retour de la méthode d’implémentation est Boolean.

Si la méthode d’implémentation est null:

  • Si left.Type et right.Type sont tous les deux non-nullables, le nœud n’est pas soulevé. Le type du nœud est Boolean.

  • Si left.Type et right.Type autorisent tous deux la valeur NULL, le nœud est élevé. Le type du nœud est nullable Boolean s’il trueliftToNull s’agit ou Boolean s’il s’agit liftToNullfalsede .

S’applique à