Share via


Métodos System.Linq.Expressions.Expression.Add

Este artigo fornece observações complementares à documentação de referência para essa API.

O Add método retorna um BinaryExpression que tem a Method propriedade definida para 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 ambas true. Caso contrário, sã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ó é suspenso.

Método de execução

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

  • Se a Type propriedade de um ou right representa um left tipo definido pelo usuário que sobrecarrega o operador de adição, o que representa esse método é o MethodInfo método de implementação.
  • Caso contrário, se left. Tipo e right. Tipo são tipos numéricos, o método de implementação é null.

Tipo de nó e levantado versus não levantado

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

  • Se left. Tipo e right. Os tipos são atribuíveis 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 satisfeitas, o nó será suspenso e o tipo do nó será o tipo anulável que corresponde ao tipo de retorno do método de implementação:

    • left. Tipo e right. Tipo são ambos os 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 execução for null:

  • Se left. Tipo e right. Os tipos não são anuláveis, o nó não é levantado. O tipo do nó é o tipo de resultado do operador de adição predefinido.
  • Se left. Tipo e right. Os tipos são ambos anuláveis, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador de adição predefinido.