Compartilhar via


Expression.AndAlso Método

Definição

Cria um BinaryExpression que representa uma operação AND condicional que avalia o segundo operando somente se o primeiro operando é avaliado como true.

Sobrecargas

AndAlso(Expression, Expression, MethodInfo)

Cria um BinaryExpression que representa uma operação AND condicional que avalia o segundo operando somente se o primeiro operando é resolvido para verdadeiro. O método de implementação pode ser especificado.

AndAlso(Expression, Expression)

Cria um BinaryExpression que representa uma operação AND condicional que avalia o segundo operando somente se o primeiro operando é avaliado como true.

AndAlso(Expression, Expression, MethodInfo)

Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs

Cria um BinaryExpression que representa uma operação AND condicional que avalia o segundo operando somente se o primeiro operando é resolvido para verdadeiro. O método de implementação pode ser especificado.

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

Um Expression para definir a propriedade Left igual a ele.

right
Expression

Um Expression para definir a propriedade Right igual a ele.

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

Retornos

Um BinaryExpression que tem a propriedade NodeType igual a AndAlso e as propriedades Left, Right e Method definidas com os valores especificados.

Exceções

left ou right é null.

method não é null e o método que ele representa retorna void, não é static (Shared no Visual Basic) ou não tem exatamente dois argumentos.

method é null e o operador AND bit a bit não é definido para left.Type e right.Type.

- ou -

method é null e Type.left e Type.right não são do mesmo tipo booliano.

Comentários

O resultante BinaryExpression tem a Method propriedade definida como o método de implementação. A Type propriedade é definida como o tipo do nó. Se o nó for levantado, as IsLifted propriedades e IsLiftedToNull serão true. Caso contrário, eles serão false. A propriedade Conversion é null.

As informações a seguir descrevem o método de implementação, o tipo de nó e se um nó é levantado.

Implementando método

O método de implementação para a operação é escolhido com base nas seguintes regras:

  • Se method não null for e representar um método não nulo, static (Shared no Visual Basic) que usa dois argumentos, é o método de implementação para o nó.

  • Caso contrário, se a Type propriedade de left ou right representar um tipo definido pelo usuário que sobrecarrega o operador bit a bit AND , o MethodInfo que representa esse método é o método de implementação.

    Observação

    O operador condicional AND não pode ser sobrecarregado em C# ou Visual Basic. No entanto, o operador condicional AND é avaliado usando o operador bit a bit AND . Portanto, uma sobrecarga definida pelo usuário do operador bit a bit AND pode ser o método de implementação para esse tipo de nó.

  • Caso contrário, se left. Digite e right. O tipo são tipos boolianos, o método de implementação é null.

Tipo de nó e versão com comparação de precisão x sem comparação de precisão

Se o método de implementação não nullfor :

  • Se left. Digite e right. O tipo é atribuível aos tipos de argumento correspondentes do método de implementação, o nó não é levantado. O tipo do nó é o tipo de retorno do método de implementação.

  • Se as duas condições a seguir forem atendidas, o nó será levantado e o tipo do nó será o tipo que permite valor nulo que corresponde ao tipo de retorno do método de implementação:

    • left. Digite e right. Tipo são tipos de valor dos quais pelo menos um é anulável e os tipos não anuláveis correspondentes são iguais aos tipos de argumento correspondentes do método de implementação.

    • O tipo de retorno do método de implementação é um tipo de valor não anulável.

Se o método de implementação for null:

  • left. Digite e right. O tipo é do mesmo tipo booliano.

  • Se left. Digite e right. O tipo não permite valor nulo, o nó não é levantado. O tipo do nó é o tipo de resultado do operador condicional AND predefinido.

  • Se left. Digite e right. O tipo é anulável, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador condicional AND predefinido.

Aplica-se a

AndAlso(Expression, Expression)

Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs

Cria um BinaryExpression que representa uma operação AND condicional que avalia o segundo operando somente se o primeiro operando é avaliado 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

Um Expression para definir a propriedade Left igual a ele.

right
Expression

Um Expression para definir a propriedade Right igual a ele.

Retornos

Um BinaryExpression que tem a propriedade NodeType igual a AndAlso e as propriedades Left e Right definidas com os valores especificados.

Exceções

left ou right é null.

O operador AND bit a bit não está definido para left.Type e right.Type.

- ou -

left.Type e right.Type não são do mesmo tipo booliano.

Exemplos

O exemplo de código a seguir mostra como criar uma expressão que executa uma operação AND lógica em seus dois operandos somente se o primeiro operando for avaliado truecomo .

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

Comentários

O resultante BinaryExpression tem a Method propriedade definida como o método de implementação. A Type propriedade é definida como o tipo do nó. Se o nó for levantado, as IsLifted propriedades e IsLiftedToNull serão true. Caso contrário, eles serão false. A propriedade Conversion é null.

As informações a seguir descrevem o método de implementação, o tipo de nó e se um nó é levantado.

Implementando método

As regras a seguir determinam o método de implementação para a operação:

  • Se a Type propriedade de left ou right representar um tipo definido pelo usuário que sobrecarrega o operador bit a bit AND , o MethodInfo que representa esse método é o método de implementação.

    Observação

    O operador condicional AND não pode ser sobrecarregado em C# ou Visual Basic. No entanto, o operador condicional AND é avaliado usando o operador bit a bit AND . Portanto, uma sobrecarga definida pelo usuário do operador bit a bit AND pode ser o método de implementação para esse tipo de nó.

  • Caso contrário, se left. Digite e right. O tipo são tipos boolianos, o método de implementação é null.

Tipo de nó e versão com comparação de precisão x sem comparação de precisão

Se o método de implementação não nullfor :

  • Se left. Digite e right. O tipo é atribuível aos tipos de argumento correspondentes do método de implementação, o nó não é levantado. O tipo do nó é o tipo de retorno do método de implementação.

  • Se as duas condições a seguir forem atendidas, o nó será levantado e o tipo do nó será o tipo que permite valor nulo que corresponde ao tipo de retorno do método de implementação:

    • left. Digite e right. Tipo são tipos de valor dos quais pelo menos um é anulável e os tipos não anuláveis correspondentes são iguais aos tipos de argumento correspondentes do método de implementação.

    • O tipo de retorno do método de implementação é um tipo de valor não anulável.

Se o método de implementação for null:

  • left. Digite e right. O tipo é do mesmo tipo booliano.

  • Se left. Digite e right. O tipo não permite valor nulo, o nó não é levantado. O tipo do nó é o tipo de resultado do operador condicional AND predefinido.

  • Se left. Digite e right. O tipo é anulável, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador condicional AND predefinido.

Aplica-se a