Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Expression.LeftShift-Methode (Expression, Expression, MethodInfo)

Aktualisiert: November 2007

Erstellt eine BinaryExpression, die eine bitweise Linksschiebeoperation darstellt. Die implementierende Methode kann angegeben werden.

Namespace:  System.Linq.Expressions
Assembly:  System.Core (in 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

Parameter

left
Typ: System.Linq.Expressions.Expression
Eine Expression, auf die die Left-Eigenschaft festgelegt werden soll.
right
Typ: System.Linq.Expressions.Expression
Eine Expression, auf die die Right-Eigenschaft festgelegt werden soll.
method
Typ: System.Reflection.MethodInfo
Eine MethodInfo, auf die die Method-Eigenschaft festgelegt werden soll.

Rückgabewert

Typ: System.Linq.Expressions.BinaryExpression
Eine BinaryExpression, bei der die NodeType-Eigenschaft gleich LeftShift ist und die Eigenschaften Left, Right und Method auf die angegebenen Werte festgelegt sind.

AusnahmeBedingung
ArgumentNullException

left oder right ist null.

ArgumentException

method ist nicht null, und die dadurch dargestellte Methode gibt void zurück, ist nicht static (Shared in Visual Basic) oder akzeptiert nicht genau zwei Argumente.

InvalidOperationException

method ist null, und der Linksschiebeoperator ist für left.Type und right.Type nicht definiert.

Bei der resultierenden BinaryExpression ist die Method-Eigenschaft auf die implementierende Methode festgelegt. Die Type-Eigenschaft ist auf den Typ des Knotens festgelegt. Wenn der Knoten transformiert ist, entspricht sowohl die IsLifted-Eigenschaft als auch die IsLiftedToNull-Eigenschaft true. Andernfalls entsprechen sie false. Die Conversion-Eigenschaft ist null.

In den folgenden Abschnitten werden die implementierende Methode und der Knotentyp beschrieben, und es wird angegeben, ob ein Knoten transformiert ist.

Implementierende Methode

Die folgenden Regeln bestimmen die ausgewählte implementierende Methode für die Operation:

  • Wenn method nicht null ist und eine static (Shared in Visual Basic) Nicht-void-Methode darstellt, die zwei Argumente akzeptiert, ist diese die implementierende Methode für den Knoten.

  • Andernfalls gilt: Wenn die Type-Eigenschaft von left oder right einen benutzerdefinierten Typ darstellt, der den Linksschiebeoperator überlädt, ist die MethodInfo, die diese Methode darstellt, die implementierende Methode.

  • Andernfalls gilt: Wenn left.Type ein ganzzahliger Typ (Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 oder die entsprechenden Typen, die NULL-Werte zulassen) und right.Type Int32 ist, ist die implementierende Methode null.

Knotentyp, transformierte Knoten und nicht transformierte Knoten

Wenn die implementierende Methode nicht null ist, gilt Folgendes:

  • Wenn left.Type und right.Type den entsprechenden Argumenttypen der implementierenden Methode zugeordnet werden können, ist der Knoten nicht transformiert. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die folgenden beiden Bedingungen erfüllt werden, ist der Knoten transformiert und weist einen Typ auf, der NULL-Werte zulässt und dem Rückgabetyp der implementierenden Methode entspricht:

    • Sowohl left.Type als auch right.Type sind Werttypen, von denen mindestens einer NULL-Werte zulässt, und die entsprechenden Typen, die keine NULL-Werte zulassen, sind gleich den entsprechenden Argumenttypen der implementierenden Methode.

    • Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der keine NULL-Werte zulässt.

Wenn die implementierende Methode null ist, gilt Folgendes:

  • Wenn weder left.Type noch right.Type NULL-Werte zulassen, ist der Knoten nicht transformiert. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Linksschiebeoperators.

  • Wenn sowohl left.Type als auch right.Type NULL-Werte zulassen, ist der Knoten transformiert. Der Knoten weist einen Typ auf, der NULL-Werte zulässt und dem Ergebnistyp des vordefinierten Linksschiebeoperators entspricht.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5
Anzeigen: