Méthodes System.Linq.Expressions.Expression.Add
Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.
La Add méthode retourne une BinaryExpressionMethod propriété définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull les IsLifted propriétés sont toutes les deux true
. Sinon, ils sont false
. La propriété Conversion a la valeur null
.
Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation sélectionnée pour l’opération :
- Si la Type propriété d’un
left
type défini par l’utilisateur ouright
qui surcharge l’opérateur d’ajout, la MethodInfo méthode qui représente cette méthode est la méthode d’implémentation. - Sinon, si
left
. Type etright
. Le type est des types numériques, la méthode d’implémentation estnull
.
Type de nœud et lifted versus non lifted
Si la méthode d’implémentation n’est pas null
:
Si
left
. Type etright
. Le type est assignable aux types d’arguments correspondants de la méthode d’implémentation, le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.Si les deux conditions suivantes sont satisfaites, le nœud est levé et le type du nœud est le type nullable qui correspond au type de retour de la méthode d’implémentation :
left
. Type etright
. Le type est tous deux des types valeur dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d’argument correspondants de la méthode d’implémentation.- Le type de retour de la méthode d’implémentation est un type valeur non nullable.
Si la méthode d’implémentation est null
:
- Si
left
. Type etright
. Le type n’est pas nullable, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur d’ajout prédéfini. - Si
left
. Type etright
. Le type est à la fois nullable, le nœud est levé. Le type du nœud est le type Nullable qui correspond au type de résultat de l’opérateur d’ajout prédéfini.