Expression.RightShift Metoda

Definice

BinaryExpression Vytvoří operaci, která představuje bitové operace posunu vpravo.

Přetížení

RightShift(Expression, Expression)

BinaryExpression Vytvoří operaci, která představuje bitové operace posunu vpravo.

RightShift(Expression, Expression, MethodInfo)

BinaryExpression Vytvoří operaci, která představuje bitové operace posunu vpravo.

RightShift(Expression, Expression)

BinaryExpression Vytvoří operaci, která představuje bitové operace posunu vpravo.

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

Parametry

left
Expression

Vlastnost Expression je nastavena na hodnotu rovna Left .

right
Expression

Vlastnost Expression je nastavena na hodnotu rovna Right .

Návraty

BinaryExpression

A BinaryExpression , která má NodeType vlastnost rovna RightShift a Left vlastnosti Right nastavené na zadané hodnoty.

Výjimky

left nebo right je null.

Operátor pravého posunu není definován pro left. Typ a right. Typ.

Poznámky

Výsledek BinaryExpressionMethod vlastnost nastavenou na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednut, IsLifted jsou obě vlastnosti IsLiftedToNull true. Jinak jsou false. Vlastnost Conversion je null.

Následující informace popisují implementovanou metodu, typ uzlu a to, jestli je uzel zvednut.

Implementace metody

Následující pravidla určují vybranou metodu implementace operace:

  • Type Pokud vlastnost buď left nebo right představuje uživatelem definovaný typ, který přetěžuje operátor pravého posunu, MethodInfo to představuje tuto metodu implementace metody.

  • V opačném případě, pokud left. Typ je celočíselný typ (jeden z Byte, UInt16UInt32SByteInt32Int64Int16, UInt64nebo odpovídající typy s možnou hodnotou null) a .right Typ je , implementovaná metoda je Int32null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud left. Typ a right. Typ je možné přiřadit odpovídajícím typům argumentů implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zvedne a typ uzlu je typ nullable, který odpovídá návratového typu implementované metody:

    • left. Typ a right. Typ jsou oba typy hodnot, z nichž nejméně jeden má hodnotu null, a odpovídající typy bez null se rovnají odpovídajícím typům argumentů implementované metody.

    • Návratový typ implementované metody je typ nenulové hodnoty.

Pokud je implementovaná metoda null:

  • Pokud left. Typ a right. Typ nemá hodnotu null, uzel se nezruší. Typ uzlu je typ výsledku předdefinovaného operátoru pravého posunu.

  • Pokud left. Typ a right. Typ je nullable, uzel se zvedne. Typ uzlu je typ nullable, který odpovídá typu výsledku předdefinovaného operátoru pravého posunu.

Platí pro

RightShift(Expression, Expression, MethodInfo)

BinaryExpression Vytvoří operaci, která představuje bitové operace posunu vpravo.

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

Parametry

left
Expression

Vlastnost Expression je nastavena na hodnotu rovna Left .

right
Expression

Vlastnost Expression je nastavena na hodnotu rovna Right .

method
MethodInfo

A MethodInfo pro nastavení Method vlastnosti rovno.

Návraty

BinaryExpression

ABinaryExpression, který má NodeType vlastnost rovna RightShift a LeftRightvlastnosti , a Method vlastnosti nastavené na zadané hodnoty.

Výjimky

left nebo right je null.

methodnení null a metoda, která představuje vrátí void, není static (Shared v Visual Basic) nebo nebere přesně dva argumenty.

method je null a operátor pravého posunu není definován pro left. Typ a right. Typ.

Poznámky

Výsledek BinaryExpressionMethod vlastnost nastavenou na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednut, IsLifted jsou obě vlastnosti IsLiftedToNull true. Jinak jsou false. Vlastnost Conversion je null.

Následující informace popisují implementovanou metodu, typ uzlu a to, jestli je uzel zvednut.

Implementace metody

Následující pravidla určují vybranou metodu implementace operace:

  • Pokud method není null a představuje neprázdnou static metodu (Sharedv Visual Basic), která přijímá dva argumenty, je to implementovaná metoda pro uzel.

  • V opačném případě, pokud Type vlastnost buď left nebo right představuje uživatelem definovaný typ, který přetíží operátor pravého posunu, MethodInfo to představuje tuto metodu implementace metody.

  • V opačném případě, pokud left. Typ je celočíselný typ (jeden z Byte, UInt16UInt32SByteInt32Int64Int16, UInt64nebo odpovídající typy s možnou hodnotou null) a .right Typ je , implementovaná metoda je Int32null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud left. Typ a right. Typ je možné přiřadit odpovídajícím typům argumentů implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zvedne a typ uzlu je typ nullable, který odpovídá návratového typu implementované metody:

    • left. Typ a right. Typ jsou oba typy hodnot, z nichž nejméně jeden má hodnotu null, a odpovídající typy bez null se rovnají odpovídajícím typům argumentů implementované metody.

    • Návratový typ implementované metody je typ nenulové hodnoty.

Pokud je implementovaná metoda null:

  • Pokud left. Typ a right. Typ nemá hodnotu null, uzel se nezruší. Typ uzlu je typ výsledku předdefinovaného operátoru pravého posunu.

  • Pokud left. Typ a right. Typ je nullable, uzel se zvedne. Typ uzlu je typ nullable, který odpovídá typu výsledku předdefinovaného operátoru pravého posunu.

Platí pro