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 Conversion proprietà è null.

Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e se un nodo è sollevato.

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, MethodInfo che rappresenta tale metodo è il metodo di implementazione.
  • In caso contrario, se left.Tipo e right.Tipo sono tipi numerici, il metodo di implementazione è null.

Tipo di nodo e sollevato rispetto a non sollevato

Se il metodo di implementazione non è null:

  • Se left.Tipo e right.Tipo sono assegnabili ai tipi di argomento corrispondenti del metodo di implementazione, il nodo non viene alzato. 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. Tipo e right. Tipo sono 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 annullabile.

Se il metodo di implementazione è null:

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