Cette documentation est archivée et n’est pas conservée.

Expression.LeftShift, méthode (Expression, Expression, MethodInfo)

Mise à jour : novembre 2007

Crée un BinaryExpression qui représente une opération de bits de décalage vers la gauche. La méthode d'implémentation peut être spécifiée.

Espace de noms :  System.Linq.Expressions
Assembly :  System.Core (dans 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

Paramètres

left
Type : System.Linq.Expressions.Expression

Expression auquel la propriété Left doit être égale.

right
Type : System.Linq.Expressions.Expression

Expression auquel la propriété Right doit être égale.

method
Type : System.Reflection.MethodInfo

MethodInfo auquel la propriété Method doit être égale.

Valeur de retour

Type : System.Linq.Expressions.BinaryExpression

BinaryExpression dont la propriété NodeType est égale à LeftShift et dont les propriétés Left, Right et Method ont les valeurs spécifiées.

ExceptionCondition
ArgumentNullException

left ou right a la valeur null.

ArgumentException

method n'est pas null et la méthode représentée retourne void, n'est pas static (Shared dans Visual Basic) ou ne prend pas deux arguments exactement.

InvalidOperationException

method est null et l'opérateur de décalage vers la gauche n'est pas défini pour left.Type et right.Type.

La méthode d'implémentation est affectée à la propriété Method du BinaryExpression résultant. Le type du nœud est affecté à la propriété Type. Si le nœud est levé, les propriétés IsLifted et IsLiftedToNull ont la valeur true. Sinon, elles ont la valeur 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 indiquent si un nœud est levé.

Méthode d'implémentation

Les règles suivantes déterminent la méthode d'implémentation sélectionnée pour l'opération :

  • Si method n'est pas null et représente une méthode non void static (Shared dans Visual Basic) qui prend deux arguments, il s'agit de la méthode d'implémentation pour le nœud.

  • Sinon, si la propriété Type de left ou right représente un type défini par l'utilisateur qui surcharge l'opérateur de décalage vers la gauche, le MethodInfo qui représente cette méthode est la méthode d'implémentation.

  • Sinon, si left.Type est un type intégral (parmi Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 ou les types nullables correspondants) et si right.Type est Int32, la méthode d'implémentation est null.

Type de nœud, levé ou non levé

Si la méthode d'implémentation n'est pas null :

  • Si left.Type et right.Type peuvent être assignés 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 et right.Type sont deux types valeur dont l'un, au moins, est nullable et les types non nullables correspondants sont égaux aux types d'arguments 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 et right.Type sont non nullables, le nœud n'est pas levé. Le type du nœud est le type de résultat de l'opérateur de décalage vers la gauche prédéfini.

  • Si left.Type et right.Type sont nullables, 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 de décalage vers la gauche prédéfini.

Windows Vista, Windows XP SP2, Windows Server 2003

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5
Afficher: