Expression.AndAlso Méthode

Définition

Crée un BinaryExpression qui représente une opération AND conditionnelle évaluant la deuxième opérande uniquement si la première opérande a la valeur true.

Surcharges

AndAlso(Expression, Expression, MethodInfo)

Crée un BinaryExpression qui représente une opération AND conditionnelle évaluant la deuxième opérande uniquement si la première opérande a la valeur true. La méthode d'implémentation peut être spécifiée.

AndAlso(Expression, Expression)

Crée un BinaryExpression qui représente une opération AND conditionnelle évaluant la deuxième opérande uniquement si la première opérande a la valeur true.

AndAlso(Expression, Expression, MethodInfo)

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

Crée un BinaryExpression qui représente une opération AND conditionnelle évaluant la deuxième opérande uniquement si la première opérande a la valeur true. La méthode d'implémentation peut être spécifiée.

public static System.Linq.Expressions.BinaryExpression AndAlso (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression AndAlso (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);

Paramètres

left
Expression

Expression auquel la propriété Left doit être égale.

right
Expression

Expression auquel la propriété Right doit être égale.

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

Retours

BinaryExpression dont la propriété NodeType est égale à AndAlso et dont les propriétés Left, Right et Method ont les valeurs spécifiées.

Exceptions

left ou right est 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 est null et l’opérateur AND au niveau du bit n’est pas défini pour les types left.et right.

- ou -

method est null et left.Type et right.Type ne sont pas du même type booléen.

Remarques

La propriété résultante 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é, les propriétés et IsLiftedToNull sont à la IsLifted fois true. Sinon, il s’agit de false. La propriété Conversion a la valeur null.

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

La méthode d’implémentation de l’opération est choisie en fonction des règles suivantes :

  • Si method n’est pas null et qu’il représente une méthode non void ( staticShared en Visual Basic) qui prend deux arguments, il s’agit de la méthode d’implémentation pour le nœud.

  • Sinon, si la Type propriété de left ou right représente un type défini par l’utilisateur qui surcharge l’opérateur au niveau AND du bit, le MethodInfo qui représente cette méthode est la méthode d’implémentation.

    Notes

    L’opérateur conditionnel AND ne peut pas être surchargé en C# ou Visual Basic. Toutefois, l’opérateur conditionnel AND est évalué à l’aide de l’opérateur au niveau AND du bit. Ainsi, une surcharge définie par l’utilisateur de l’opérateur au niveau AND du bit peut être la méthode d’implémentation pour ce type de nœud.

  • Sinon, si left. Tapez et right. Les types sont booléens, la méthode d’implémentation est null.

Type de nœud et lifté par rapport à non lifté

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

  • Si left. Tapez et right. Les types sont assignables 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 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 :

    • left. Tapez et right. Le type est deux types de valeurs dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d’arguments correspondants 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:

  • left. Tapez et right. Le type est le même type booléen.

  • Si left. Tapez et right. Les types ne sont pas nullables, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur conditionnel AND prédéfini.

  • Si left. Tapez et right. Les types sont nullables, le nœud est levé. Le type du nœud est le type nullable qui correspond au type de résultat de l’opérateur conditionnel AND prédéfini.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

AndAlso(Expression, Expression)

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

Crée un BinaryExpression qui représente une opération AND conditionnelle évaluant la deuxième opérande uniquement si la première opérande a la valeur true.

public static System.Linq.Expressions.BinaryExpression AndAlso (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);

Paramètres

left
Expression

Expression auquel la propriété Left doit être égale.

right
Expression

Expression auquel la propriété Right doit être égale.

Retours

BinaryExpression dont la propriété NodeType est égale à AndAlso et dont les propriétés Left et Right ont les valeurs spécifiées.

Exceptions

left ou right est null.

L'opérateur de bits AND n'est pas défini pour left.Type et right.Type.

- ou -

left.Type et right.Type ne sont pas du même type booléen.

Exemples

L’exemple de code suivant montre comment créer une expression qui effectue une opération AND logique sur ses deux opérandes uniquement si le premier opérande prend la valeur true.

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

// This expression perfroms a logical AND operation
// on its two arguments, but if the first argument is false,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression andAlsoExpr = Expression.AndAlso(
    Expression.Constant(false),
    Expression.Constant(true)
);

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

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

// This code example produces the following output:
//
// (False AndAlso True)
// False

Remarques

La propriété résultante 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é, les propriétés et IsLiftedToNull sont à la IsLifted fois true. Sinon, il s’agit de false. La propriété Conversion a la valeur null.

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 Type propriété de left ou right représente un type défini par l’utilisateur qui surcharge l’opérateur au niveau AND du bit, le MethodInfo qui représente cette méthode est la méthode d’implémentation.

    Notes

    L’opérateur conditionnel AND ne peut pas être surchargé en C# ou Visual Basic. Toutefois, l’opérateur conditionnel AND est évalué à l’aide de l’opérateur au niveau AND du bit. Ainsi, une surcharge définie par l’utilisateur de l’opérateur au niveau AND du bit peut être la méthode d’implémentation pour ce type de nœud.

  • Sinon, si left. Tapez et right. Les types sont booléens, la méthode d’implémentation est null.

Type de nœud et lifté par rapport à non lifté

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

  • Si left. Tapez et right. Les types sont assignables 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 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 :

    • left. Tapez et right. Le type est deux types de valeurs dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d’arguments correspondants 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:

  • left. Tapez et right. Le type est le même type booléen.

  • Si left. Tapez et right. Les types ne sont pas nullables, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur conditionnel AND prédéfini.

  • Si left. Tapez et right. Les types sont nullables, le nœud est levé. Le type du nœud est le type nullable qui correspond au type de résultat de l’opérateur conditionnel AND prédéfini.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0