Métodos System.Linq.Expressions.Expression.Add
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
El Add método devuelve un BinaryExpression que tiene la Method propiedad establecida en el método de implementación. La Type propiedad se establece en el tipo del nodo. Si se levanta el nodo, las IsLifted propiedades y IsLiftedToNull son true
. De lo contrario, son false
. La propiedad Conversion es null
.
En la siguiente información se describe el método de implementación, el tipo de nodo y si se levanta un nodo.
Método de implementación
Las reglas siguientes determinan el método de implementación seleccionado para la operación:
- Si la Type propiedad de o
left
right
representa un tipo definido por el usuario que sobrecarga el operador de suma, el MethodInfo que representa ese método es el método de implementación. - De lo contrario, si
left
es . Escriba yright
. El tipo son tipos numéricos, el método de implementación esnull
.
Tipo de nodo y elevado frente a no elevado
Si el método de implementación no null
es :
Si
left
es . Escriba yright
. El tipo se puede asignar a los tipos de argumento correspondientes del método de implementación, el nodo no se levanta. El tipo del nodo es el tipo de valor devuelto del método de implementación.Si se cumplen las dos condiciones siguientes, el nodo se levanta y el tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo devuelto del método de implementación:
left
. Escriba yright
. El tipo son tipos de valor de los que al menos uno acepta valores NULL y los tipos que no aceptan valores NULL correspondientes son iguales a los tipos de argumento correspondientes del método de implementación.- El tipo de valor devuelto del método de implementación es un tipo de valor que no acepta valores NULL.
Si el método de implementación es null
:
- Si
left
es . Escriba yright
. El tipo no acepta valores NULL, el nodo no se levanta. El tipo del nodo es el tipo de resultado del operador de suma predefinido. - Si
left
es . Escriba yright
. El tipo admite valores NULL y se levanta el nodo. El tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de resultado del operador de suma predefinido.