Condividi tramite


Metodi System.Linq.Expressions.Expression.Add

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

Il Add metodo restituisce un oggetto BinaryExpression con la Method proprietà impostata sul metodo di implementazione. La Type proprietà è impostata sul tipo del nodo. Se il nodo viene sollevato, le IsLifted proprietà e IsLiftedToNull sono entrambe true. In caso contrario, sono false. La proprietà Conversion è null.

Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e l'accuratezza di un nodo.

Implementazione del metodo

Le regole seguenti determinano il metodo di implementazione selezionato per l'operazione:

  • Se la Type proprietà di left o right rappresenta un tipo definito dall'utente che esegue l'overload dell'operatore di addizione, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.
  • In caso contrario, se left. Digitare e right. Il tipo sono tipi numerici, il metodo di implementazione è null.

Tipo di nodo e lifting rispetto a non lifted

Se il metodo di implementazione non nullè :

  • Se left. Digitare e right. Il tipo è assegnabile ai tipi di argomento corrispondenti del metodo di implementazione, il nodo non viene sollevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.

  • Se vengono soddisfatte le due condizioni seguenti, il nodo viene sollevato e il tipo del nodo è il tipo nullable che corrisponde al tipo restituito del metodo di implementazione:

    • left. Digitare e right. Il tipo è entrambi tipi valore di cui almeno uno è nullable e i tipi non nullable corrispondenti sono uguali ai tipi di argomento corrispondenti del metodo di implementazione.
    • Il tipo restituito del metodo di implementazione è un tipo valore non nullable.

Se il metodo di implementazione è null:

  • Se left. Digitare e right. Il tipo non è nullable, il nodo non viene sollevato. Il tipo del nodo è il tipo di risultato dell'operatore di addizione predefinito.
  • Se left. Digitare e right. Il tipo è entrambi nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore di addizione predefinito.