Compartir vía


Expression.And Método

Definición

Crea un BinaryExpression objeto que representa una operación bit a bit AND .

Sobrecargas

Nombre Description
And(Expression, Expression)

Crea un BinaryExpression objeto que representa una operación bit a bit AND .

And(Expression, Expression, MethodInfo)

Crea un BinaryExpression objeto que representa una operación bit a bit AND . Se puede especificar el método de implementación.

And(Expression, Expression)

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

Crea un BinaryExpression objeto que representa una operación bit a bit AND .

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

Parámetros

left
Expression

Expression que se va a establecer la Left propiedad igual a.

right
Expression

Expression que se va a establecer la Right propiedad igual a.

Devoluciones

que BinaryExpression tiene la NodeType propiedad igual a And y las Left propiedades y Right establecidas en los valores especificados.

Excepciones

left o right es null.

El operador bit a bit AND no está definido para left. Escriba y right. Tipo.

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear una expresión que represente una operación AND lógica en dos valores booleanos.

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

// This expression perfroms a logical AND operation
// on its two arguments. Both arguments must be of the same type,
// which can be boolean or integer.
Expression andExpr = Expression.And(
    Expression.Constant(true),
    Expression.Constant(false)
);

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

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

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

' This expression performs a logical AND operation
' on its two arguments. Both arguments must be of the same type,
' which can be Boolean or integer.             
Dim andExpr As Expression = Expression.And(
    Expression.Constant(True),
    Expression.Constant(False)
    )

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

' The following statement first creates an expression tree,
' then compiles it, and then executes it.       
Console.WriteLine(
    Expression.Lambda(Of Func(Of Boolean))(andExpr).Compile()())
' This code example produces the following output:
'
' (True And False)
' False

Comentarios

El resultado 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, tanto las propiedades IsLifted como IsLiftedToNull son true. De lo contrario, son false. La Conversion propiedad es null.

En la siguiente información se 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 bit AND , que MethodInfo representa ese método es el método de implementación.

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

Tipo de nodo y elevado frente a no elevado

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

  • Si left.Tipo y right.Tipo son asignables 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 anulable que corresponde al tipo de retorno del método implementador.

    • left.Tipo y right.Tipo son tipos de valor, de los cuales al menos uno es nullable, y los tipos no anulables correspondientes son iguales a los tipos de argumento 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:

  • Si tanto left.Tipo como right.Tipo no aceptan valores NULL, el nodo no se levanta. El tipo del nodo es el tipo de resultado del operador bit a AND bit predefinido.

  • Si tanto left.Tipo como right.Tipo son de tipo nullable, el nodo se eleva. El tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de resultado del operador bit a AND bit predefinido.

Se aplica a

And(Expression, Expression, MethodInfo)

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

Crea un BinaryExpression objeto que representa una operación bit a bit AND . Se puede especificar el método de implementación.

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

Parámetros

left
Expression

que Expression se va a establecer la Left propiedad igual a.

right
Expression

que Expression se va a establecer la Right propiedad igual a.

method
MethodInfo

MethodInfo que se va a establecer la Method propiedad igual a.

Devoluciones

que BinaryExpression tiene la NodeType propiedad igual a And y las Leftpropiedades , Righty Method establecidas en los valores especificados.

Excepciones

left o right es null.

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

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

Comentarios

El resultado 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, tanto las propiedades IsLifted como IsLiftedToNull son true. De lo contrario, son false. La Conversion propiedad es null.

En la siguiente información se 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 null es y representa un método no void( staticShared 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 o rightleft representa un tipo definido por el usuario que sobrecarga el operador bit a bitAND, que MethodInfo representa ese método es el método de implementación.

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

Tipo de nodo y elevado frente a no elevado

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

  • Si left.Tipo y right.Tipo son asignables 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 anulable que corresponde al tipo de retorno del método implementador.

    • left.Tipo y right.Tipo son tipos de valor, de los cuales al menos uno es nullable, y los tipos no anulables correspondientes son iguales a los tipos de argumento 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:

  • Si tanto left.Tipo como right.Tipo no aceptan valores NULL, el nodo no se levanta. El tipo del nodo es el tipo de resultado del operador bit a AND bit predefinido.

  • Si tanto left.Tipo como right.Tipo son de tipo nullable, el nodo se eleva. El tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de resultado del operador bit a AND bit predefinido.

Se aplica a