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 umleft
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 eright
. 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 null
for:
Se
left
. Tipo eright
. 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 eright
. 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 eright
. 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 eright
. 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.