Expression.LeftShift Methode

Definition

Erstellt eine BinaryExpression, die eine bitweise Linksschiebeoperation darstellt.

Überlädt

LeftShift(Expression, Expression)

Erstellt eine BinaryExpression, die eine bitweise Linksschiebeoperation darstellt.

LeftShift(Expression, Expression, MethodInfo)

Erstellt eine BinaryExpression, die eine bitweise Linksschiebeoperation darstellt.

LeftShift(Expression, Expression)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

Erstellt eine BinaryExpression, die eine bitweise Linksschiebeoperation darstellt.

public:
 static System::Linq::Expressions::BinaryExpression ^ LeftShift(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression LeftShift (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member LeftShift : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function LeftShift (left As Expression, right As Expression) As BinaryExpression

Parameter

left
Expression

Ein Expression, auf den die Left-Eigenschaft festgelegt werden soll.

right
Expression

Ein Expression, auf den die Right-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein BinaryExpression, bei dem die NodeType-Eigenschaft gleich LeftShift ist und die Left-Eigenschaft sowie die Right-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

left oder right ist null.

Der Linksschiebeoperator ist für left.Type und right.Type nicht definiert.

Hinweise

Die resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die IsLifted Eigenschaften und IsLiftedToNull beide true. Andernfalls sind falsesie . Die Conversion-Eigenschaft ist null.

Die folgenden Informationen beschreiben die Implementierenden Methode, den Knotentyp und ob ein Knoten angehoben wird.

Implementieren der Methode

Die folgenden Regeln bestimmen die ausgewählte Implementierungsmethode für den Vorgang:

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

  • Andernfalls, wenn left. Type ist ein integraler Typ (einer von Byte, , Int16SByte, UInt16, Int32, UInt32, Int64, , UInt64oder die entsprechenden Nullable-Typen) und right. Typ ist Int32, die implementierenden Methode ist null.

Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"

Wenn die implementierenden Methode nicht nulllautet:

  • Wenn left. Geben Sie und ein right. Der Typ kann den entsprechenden Argumenttypen der implementierenden Methode zugewiesen werden, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten angehoben, und der Typ des Knotens ist der Nullable-Typ, der dem Rückgabetyp der implementierenden Methode entspricht:

    • left. Geben Sie und ein right. Typ sind beide Werttypen, von denen mindestens einer null-wertefähig ist, und die entsprechenden Typen, die keine Nullwerte zulassen, gleich den entsprechenden Argumenttypen der implementierenden Methode sind.

    • Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der nicht nullable ist.

Wenn die implementierenden Methode lautet null:

  • Wenn left. Geben Sie und ein right. Der Typ kann nicht null sein, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Linksverschiebungsoperators.

  • Wenn left. Geben Sie und ein right. Der Typ kann null zulassen, und der Knoten wird angehoben. Der Typ des Knotens ist der Nullable-Typ, der dem Ergebnistyp des vordefinierten Linksverschiebungsoperators entspricht.

Gilt für:

LeftShift(Expression, Expression, MethodInfo)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

Erstellt eine BinaryExpression, die eine bitweise Linksschiebeoperation darstellt.

public:
 static System::Linq::Expressions::BinaryExpression ^ LeftShift(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression LeftShift (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression LeftShift (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member LeftShift : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function LeftShift (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression

Parameter

left
Expression

Ein Expression, auf den die Left-Eigenschaft festgelegt werden soll.

right
Expression

Ein Expression, auf den die Right-Eigenschaft festgelegt werden soll.

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein BinaryExpression, bei dem die NodeType-Eigenschaft gleich LeftShift ist und die Eigenschaften Left, Right und Method auf die angegebenen Werte festgelegt sind.

Ausnahmen

left oder right ist null.

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

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

Hinweise

Die resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die IsLifted Eigenschaften und IsLiftedToNull beide true. Andernfalls sind falsesie . Die Conversion-Eigenschaft ist null.

Die folgenden Informationen beschreiben die Implementierenden Methode, den Knotentyp und ob ein Knoten angehoben wird.

Implementieren der Methode

Die folgenden Regeln bestimmen die ausgewählte Implementierungsmethode für den Vorgang:

  • Wenn method nicht null ist und eine nicht leere Methode (Shared in Visual Basic) darstellt, static die zwei Argumente akzeptiert, handelt es sich um die implementierende Methode für den Knoten.

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

  • Andernfalls, wenn left. Type ist ein integraler Typ (einer von Byte, , Int16SByte, UInt16, Int32, UInt32, Int64, , UInt64oder die entsprechenden Nullable-Typen) und right. Typ ist Int32, die implementierenden Methode ist null.

Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"

Wenn die implementierenden Methode nicht nulllautet:

  • Wenn left. Geben Sie und ein right. Der Typ kann den entsprechenden Argumenttypen der implementierenden Methode zugewiesen werden, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten angehoben, und der Typ des Knotens ist der Nullable-Typ, der dem Rückgabetyp der implementierenden Methode entspricht:

    • left. Geben Sie und ein right. Typ sind beide Werttypen, von denen mindestens einer null-wertefähig ist, und die entsprechenden Typen, die keine Nullwerte zulassen, gleich den entsprechenden Argumenttypen der implementierenden Methode sind.

    • Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der nicht nullable ist.

Wenn die implementierenden Methode lautet null:

  • Wenn left. Geben Sie und ein right. Der Typ kann nicht null sein, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Linksverschiebungsoperators.

  • Wenn left. Geben Sie und ein right. Der Typ kann null zulassen, und der Knoten wird angehoben. Der Typ des Knotens ist der Nullable-Typ, der dem Ergebnistyp des vordefinierten Linksverschiebungsoperators entspricht.

Gilt für: