¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

Expression.LeftShift (Método) (Expression, Expression, MethodInfo)

Actualización: noviembre 2007

Crea un objeto BinaryExpression que representa una operación bit a bit de desplazamiento a la izquierda. Se puede especificar el método de implementación.

Espacio de nombres:  System.Linq.Expressions
Ensamblado:  System.Core (en System.Core.dll)

public static BinaryExpression LeftShift(
	Expression left,
	Expression right,
	MethodInfo method
)
public static BinaryExpression LeftShift(
	Expression left,
	Expression right,
	MethodInfo method
)
public static function LeftShift(
	left : Expression, 
	right : Expression, 
	method : MethodInfo
) : BinaryExpression

Parámetros

left
Tipo: System.Linq.Expressions.Expression
Objeto Expression en el que se va a establecer la propiedad Left.
right
Tipo: System.Linq.Expressions.Expression
Objeto Expression en el que se va a establecer la propiedad Right.
method
Tipo: System.Reflection.MethodInfo
Objeto MethodInfo en el que se va a establecer la propiedad Method.

Valor devuelto

Tipo: System.Linq.Expressions.BinaryExpression
Objeto BinaryExpression cuya propiedad NodeType es LeftShift y cuyas propiedades Left, Right y Method se establecen en los valores especificados.

ExcepciónCondición
ArgumentNullException

El parámetro left o el parámetro right es null.

ArgumentException

method no es null y el método que representa devuelve void, no es static (Shared en Visual Basic) o no toma exactamente dos argumentos.

InvalidOperationException

method es null y no hay ningún operador de desplazamiento a la izquierda definido para left.Type y right.Type.

El objeto BinaryExpression resultante tiene el valor de la propiedad Method establecido en el método de implementación. La propiedad Type se establece en el tipo del nodo. Si se eleva el nodo, el valor de las propiedades IsLifted e IsLiftedToNull es true. De lo contrario, su valor es false. El valor de la propiedad Conversion es null.

En la información siguiente, se describen el método de implementación, el tipo de nodo y si se eleva un nodo.

Método de implementación

Las siguientes reglas determinan el método de implementación seleccionado de la operación:

  • Si method no es null y representa un método static (Shared en Visual Basic) distinto de void que toma dos argumentos, se trata del método de implementación del nodo.

  • En caso contrario, si la propiedad Type de left o right representa un tipo definido por el usuario que sobrecarga el operador de desplazamiento a la izquierda, el objeto MethodInfo que representa ese método es el método de implementación.

  • De lo contrario, si left.Type es un tipo integral (uno de los tipos Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 o de los correspondientes tipos que aceptan valores null) y right.Type es Int32, el método de implementación es null.

Tipo de nodo y nodo elevado en contraposición a nodo no elevado

Si el método de implementación no es null:

  • Si left.Type y right.Type se pueden asignar a los tipos de argumento correspondientes del método de implementación, no se eleva el nodo. El tipo de nodo es el tipo de valor devuelto del método de implementación.

  • Si se cumplen estas dos condiciones, se eleva el nodo y su tipo es el tipo que acepta valores null correspondiente al tipo de valor devuelto del método de implementación:

    • left.Type y right.Type son tipos de valor de los cuales al menos uno acepta valores null y los correspondientes tipos que no aceptan valores null son iguales que 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.Type y right.Type no aceptan valores null, no se eleva el nodo. El tipo del nodo es el tipo de resultado del operador de desplazamiento a la izquierda predefinido.

  • Si left.Type y right.Type aceptan valores null, se eleva el nodo. El tipo de nodo es el tipo que acepta valores null correspondiente al tipo de resultado del operador de desplazamiento a la izquierda predefinido.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft