Compartilhar via


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

Este artigo fornece comentários complementares à documentação de referência para esta API.

O Add método retorna um BinaryExpression que tem a Method propriedade definida para o método de implementação. A propriedade Type é definida como o tipo do nó. Se o nó for levantado, as propriedades IsLifted e IsLiftedToNull serão ambas true. Caso contrário, elas 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ó tem comparação de precisão.

Implementando método

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

  • Se a Type propriedade de um left ou right representa um tipo definido pelo usuário que sobrecarrega o operador de adição, o MethodInfo que representa esse método é o 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 versão com comparação de precisão x sem comparação de precisão

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

  • Se left.Type e right.Type forem atribuíveis aos tipos de argumentos correspondentes do método de implementação, o nó não terá comparação de precisão. 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ó terá comparação de precisão 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 tipos de valor dos quais pelo menos um é nulo, e os tipos não nulos 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:

  • Se left.Type e right.Type forem não anuláveis, o nó não terá comparação de precisão. O tipo do nó é o tipo de resultado do operador de adição pré-definido.
  • Se left.Type e right.Type forem anuláveis, o nó terá comparação de precisão. O tipo do nó é o tipo anulável correspondente ao tipo de resultado do operador de adição pré-definido.