Compartir vía


Expression.AndAlso Método

Definición

Crea un objeto BinaryExpression que representa una operación AND condicional que evalúa el segundo operando únicamente si el primer operando se evalúa como true.

Sobrecargas

AndAlso(Expression, Expression, MethodInfo)

Crea un objeto BinaryExpression que representa una operación AND condicional que evalúa el segundo operando solo si el primer operando se resuelve como true. Se puede especificar el método de implementación.

AndAlso(Expression, Expression)

Crea un objeto BinaryExpression que representa una operación AND condicional que evalúa el segundo operando únicamente si el primer operando se evalúa como true.

AndAlso(Expression, Expression, MethodInfo)

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

Crea un objeto BinaryExpression que representa una operación AND condicional que evalúa el segundo operando solo si el primer operando se resuelve como true. Se puede especificar el método de implementación.

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);
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

Parámetros

left
Expression

Expression en el que se va a establecer la propiedad Left.

right
Expression

Expression en el que se va a establecer la propiedad Right.

method
MethodInfo

MethodInfo en el que se va a establecer la propiedad Method.

Devoluciones

BinaryExpression cuya propiedad NodeType es AndAlso y Left, Right y Method se establecen en los valores especificados.

Excepciones

left o right es null.

method no es null y el método que representa devuelve void, no es static (Shared en Visual Basic) o no toma exactamente dos argumentos.

method es null y el operador AND bit a bit no está definido para left.Type y right.Type.

o bien

method es null y left.Type y right.Type no son del mismo tipo booleano.

Comentarios

El resultante BinaryExpression tiene la Method propiedad establecida en el método de implementación. La Type propiedad se establece en el tipo del nodo. Si se levanta el nodo, las IsLifted propiedades y IsLiftedToNull son true. De lo contrario, son false. La propiedad Conversion es null.

La siguiente información describe el método de implementación, el tipo de nodo y si se levanta un nodo.

Método de implementación

El método de implementación para la operación se elige en función de las reglas siguientes:

  • Si method no es y representa un método que no null es void, static (Shared en Visual Basic) que toma dos argumentos, es el método de implementación para el nodo.

  • De lo contrario, si la Type propiedad de left o right representa un tipo definido por el usuario que sobrecarga el operador bit a AND bit, que MethodInfo representa ese método es el método de implementación.

    Nota

    El operador condicional AND no se puede sobrecargar en C# o Visual Basic. Sin embargo, el operador condicional AND se evalúa mediante el operador bit a AND bit. Por lo tanto, una sobrecarga definida por el usuario del operador bit a AND bit puede ser el método de implementación para este tipo de nodo.

  • De lo contrario, si leftes . Escriba y right. El tipo son tipos booleanos, el método de implementación es null.

Tipo de nodo y Elevación frente a No elevado

Si el método de implementación no nulles :

  • Si left. Escriba y right. El tipo se puede asignar a los tipos de argumento correspondientes del método de implementación, el nodo no se levanta. El tipo del nodo es el tipo de valor devuelto del método de implementación.

  • Si se cumplen las dos condiciones siguientes, el nodo se levanta y el tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de valor devuelto del método de implementación:

    • left. Escriba y right. El tipo son ambos tipos de valor de los que al menos uno acepta valores NULL y los tipos que no aceptan valores NULL correspondientes son iguales a los tipos de argumento correspondientes del método de implementación.

    • El tipo de valor devuelto del método de implementación es un tipo de valor que no acepta valores NULL.

Si el método de implementación es null:

  • left. Escriba y right. El tipo es el mismo tipo booleano.

  • Si left. Escriba y right. El tipo no acepta valores NULL, el nodo no se levanta. El tipo del nodo es el tipo de resultado del operador condicional AND predefinido.

  • Si left. Escriba y right. El tipo acepta valores NULL y se levanta el nodo. El tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de resultado del operador condicional AND predefinido.

Se aplica a

AndAlso(Expression, Expression)

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

Crea un objeto BinaryExpression que representa una operación AND condicional que evalúa el segundo operando únicamente si el primer operando se evalúa como 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

Parámetros

left
Expression

Expression en el que se va a establecer la propiedad Left.

right
Expression

Expression en el que se va a establecer la propiedad Right.

Devoluciones

BinaryExpression cuya propiedad NodeType es AndAlso y cuyas propiedades Left y Right se establecen en los valores especificados.

Excepciones

left o right es null.

No hay ningún operador AND bit a bit definido para left.Type y right.Type.

o bien

left.Type y right.Type no son del mismo tipo booleano.

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear una expresión que realiza una operación AND lógica en sus dos operandos solo si el primer operando se evalúa como 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

Comentarios

El resultante BinaryExpression tiene la Method propiedad establecida en el método de implementación. La Type propiedad se establece en el tipo del nodo. Si se levanta el nodo, las IsLifted propiedades y IsLiftedToNull son true. De lo contrario, son false. La propiedad Conversion es null.

La siguiente información describe el método de implementación, el tipo de nodo y si se levanta un nodo.

Método de implementación

Las reglas siguientes determinan el método de implementación para la operación:

  • Si la Type propiedad de o leftright representa un tipo definido por el usuario que sobrecarga el operador bit a AND bit, que MethodInfo representa ese método es el método de implementación.

    Nota

    El operador condicional AND no se puede sobrecargar en C# o Visual Basic. Sin embargo, el operador condicional AND se evalúa mediante el operador bit a AND bit. Por lo tanto, una sobrecarga definida por el usuario del operador bit a AND bit puede ser el método de implementación para este tipo de nodo.

  • De lo contrario, si leftes . Escriba y right. El tipo son tipos booleanos, el método de implementación es null.

Tipo de nodo y Elevación frente a No elevado

Si el método de implementación no nulles :

  • Si left. Escriba y right. El tipo se puede asignar a los tipos de argumento correspondientes del método de implementación, el nodo no se levanta. El tipo del nodo es el tipo de valor devuelto del método de implementación.

  • Si se cumplen las dos condiciones siguientes, el nodo se levanta y el tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de valor devuelto del método de implementación:

    • left. Escriba y right. El tipo son ambos tipos de valor de los que al menos uno acepta valores NULL y los tipos que no aceptan valores NULL correspondientes son iguales a los tipos de argumento correspondientes del método de implementación.

    • El tipo de valor devuelto del método de implementación es un tipo de valor que no acepta valores NULL.

Si el método de implementación es null:

  • left. Escriba y right. El tipo es el mismo tipo booleano.

  • Si left. Escriba y right. El tipo no acepta valores NULL, el nodo no se levanta. El tipo del nodo es el tipo de resultado del operador condicional AND predefinido.

  • Si left. Escriba y right. El tipo acepta valores NULL y se levanta el nodo. El tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de resultado del operador condicional AND predefinido.

Se aplica a