Expression.AndAlso Expression.AndAlso Expression.AndAlso Expression.AndAlso Method

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.Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand evaluates to true.

Surcharges

AndAlso(Expression, Expression, MethodInfo) AndAlso(Expression, Expression, MethodInfo) AndAlso(Expression, Expression, MethodInfo) 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.Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand is resolved to true. La méthode d'implémentation peut être spécifiée.The implementing method can be specified.

AndAlso(Expression, Expression) AndAlso(Expression, Expression) AndAlso(Expression, Expression) 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.Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand evaluates to true.

AndAlso(Expression, Expression, MethodInfo) AndAlso(Expression, Expression, MethodInfo) AndAlso(Expression, Expression, MethodInfo) 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.Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand is resolved to true. La méthode d'implémentation peut être spécifiée.The implementing method can be specified.

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);
static member AndAlso : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function AndAlso (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression

Paramètres

left
Expression Expression Expression Expression

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

right
Expression Expression Expression Expression

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

method
MethodInfo MethodInfo MethodInfo MethodInfo

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

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.A BinaryExpression that has the NodeType property equal to AndAlso and the Left, Right, and Method properties set to the specified values.

Exceptions

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 AND au niveau du bit n’est pas défini pour les types left.et right.method is null and the bitwise AND operator is not defined for left.Type and right.Type.

ou-or- method est null et left.Type et right.Type ne sont pas du même type booléen.method is null and left.Type and right.Type are not the same Boolean type.

Remarques

Résultant BinaryExpression a le Method propriété définie sur la méthode d’implémentation.The resulting BinaryExpression has the Method property set to the implementing method. Le 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 et IsLiftedToNull propriétés sont toutes deux true.If the node is lifted, the IsLifted and IsLiftedToNull properties are both true. Sinon, elles sont false.Otherwise, they are false. La propriété Conversion est null.The Conversion property is null.

Les informations suivantes décrivent la méthode d’implémentation, le type de nœud, et indique si un nœud est levé.The following information describes the implementing method, the node type, and whether a node is lifted.

Méthode d’implémentationImplementing Method

La méthode d’implémentation pour l’opération est choisie en fonction des règles suivantes :The implementing method for the operation is chosen based on the following rules:

  • Si method n’est pas null et il représente un non void, static (Shared en Visual Basic) méthode qui accepte deux arguments, il est 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 two arguments, it is the implementing method for the node.

  • Sinon, si le Type propriété du left ou right représente un type défini par l’utilisateur qui surcharge l’opérateur de bits AND opérateur, 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 bitwise AND operator, the MethodInfo that represents that method is the implementing method.

    Notes

    L’instruction conditionnelle AND opérateur ne peut pas être surchargé en C# ou Visual Basic.The conditional AND operator cannot be overloaded in C# or Visual Basic. Toutefois, l’instruction conditionnelle AND opérateur est évalué à l’aide de l’opérateur de bits AND opérateur.However, the conditional AND operator is evaluated by using the bitwise AND operator. Par conséquent, une surcharge définie par l’utilisateur de l’opérateur de bits AND opérateur peut être la méthode d’implémentation pour ce type de nœud.Thus, a user-defined overload of the bitwise AND operator can be the implementing method for this node type.

  • Sinon, si left. Type et right. Type sont des types booléens, la méthode d’implémentation est null.Otherwise, if left.Type and right.Type are Boolean types, the implementing method is null.

Type de nœud, levé ou 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. Type et right. Type peuvent être assignés à des 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 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:

    • left. Type et right. Type sont deux types de valeur dont au moins un est nullable, et les types non nullable correspondants sont égaux aux types d’argument correspondant 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 un type valeur non nullable.The return type of the implementing method is a non-nullable value type.

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

  • left. Type et right. Type sont du même type booléen.left.Type and right.Type are the same Boolean type.

  • Si left. Type et right. Type sont non nullable, le nœud n’est pas levé.If left.Type and right.Type are non-nullable, the node is not lifted. Le type du nœud est le type de résultat de l’instruction conditionnelle prédéfini AND opérateur.The type of the node is the result type of the predefined conditional AND operator.

  • Si left. Type et right. Type sont nullable, le nœud est levé.If left.Type and right.Type are nullable, the node is lifted. Le type du nœud est le type nullable qui correspond au type de résultat de l’instruction conditionnelle prédéfini AND opérateur.The type of the node is the nullable type that corresponds to the result type of the predefined conditional AND operator.

AndAlso(Expression, Expression) AndAlso(Expression, Expression) AndAlso(Expression, Expression) 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.Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand evaluates to true.

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

Paramètres

left
Expression Expression Expression Expression

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

right
Expression Expression Expression Expression

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

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.A BinaryExpression that has the NodeType property equal to AndAlso and the Left and Right properties set to the specified values.

Exceptions

L'opérateur de bits AND n'est pas défini pour left.Type et right.Type.The bitwise AND operator is not defined for left.Type and right.Type.

ou-or- left.Type et right.Type ne sont pas du même type booléen.left.Type and right.Type are not the same Boolean type.

Exemples

L’exemple de code suivant montre comment créer une expression qui effectue un opérateur logique et opération sur ses deux opérandes uniquement si le premier opérande prend la valeur true.The following code example shows how to create an expression that performs a logical AND operation on its two operands only if the first operand evaluates to 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

' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression performs a logical AND operation
' on its two arguments, but if the first argument is false,
' the second argument is not evaluated.
' Both arguments must be of the Boolean type.
Dim andAlsoExpr As Expression = Expression.AndAlso(
     Expression.Constant(False),
     Expression.Constant(True)
 )

' Print 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(Of Func(Of Boolean))(andAlsoExpr).Compile()())

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

Remarques

Résultant BinaryExpression a le Method propriété définie sur la méthode d’implémentation.The resulting BinaryExpression has the Method property set to the implementing method. Le 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 et IsLiftedToNull propriétés sont toutes deux true.If the node is lifted, the IsLifted and IsLiftedToNull properties are both true. Sinon, elles sont false.Otherwise, they are false. La propriété Conversion est null.The Conversion property is null.

Les informations suivantes décrivent la méthode d’implémentation, le type de nœud, et indique si un nœud est levé.The following information describes the implementing method, the node type, and whether a node is lifted.

Méthode d’implémentationImplementing 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 le Type propriété du left ou right représente un type défini par l’utilisateur qui surcharge l’opérateur de bits AND opérateur, 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 bitwise AND operator, the MethodInfo that represents that method is the implementing method.

    Notes

    L’instruction conditionnelle AND opérateur ne peut pas être surchargé en C# ou Visual Basic.The conditional AND operator cannot be overloaded in C# or Visual Basic. Toutefois, l’instruction conditionnelle AND opérateur est évalué à l’aide de l’opérateur de bits AND opérateur.However, the conditional AND operator is evaluated by using the bitwise AND operator. Par conséquent, une surcharge définie par l’utilisateur de l’opérateur de bits AND opérateur peut être la méthode d’implémentation pour ce type de nœud.Thus, a user-defined overload of the bitwise AND operator can be the implementing method for this node type.

  • Sinon, si left. Type et right. Type sont des types booléens, la méthode d’implémentation est null.Otherwise, if left.Type and right.Type are Boolean types, the implementing method is null.

Type de nœud, levé ou 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. Type et right. Type peuvent être assignés à des 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 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:

    • left. Type et right. Type sont deux types de valeur dont au moins un est nullable, et les types non nullable correspondants sont égaux aux types d’argument correspondant 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 un type valeur non nullable.The return type of the implementing method is a non-nullable value type.

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

  • left. Type et right. Type sont du même type booléen.left.Type and right.Type are the same Boolean type.

  • Si left. Type et right. Type sont non nullable, le nœud n’est pas levé.If left.Type and right.Type are non-nullable, the node is not lifted. Le type du nœud est le type de résultat de l’instruction conditionnelle prédéfini AND opérateur.The type of the node is the result type of the predefined conditional AND operator.

  • Si left. Type et right. Type sont nullable, le nœud est levé.If left.Type and right.Type are nullable, the node is lifted. Le type du nœud est le type nullable qui correspond au type de résultat de l’instruction conditionnelle prédéfini AND opérateur.The type of the node is the nullable type that corresponds to the result type of the predefined conditional AND operator.

S’applique à