Expression.RightShift 方法

定义

创建一个表示按位右移运算的 BinaryExpression

重载

RightShift(Expression, Expression)

创建一个表示按位右移运算的 BinaryExpression

RightShift(Expression, Expression, MethodInfo)

创建一个表示按位右移运算的 BinaryExpression

RightShift(Expression, Expression)

创建一个表示按位右移运算的 BinaryExpression

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

参数

left
Expression

要将 Expression 属性设置为与其相等的 Left

right
Expression

要将 Expression 属性设置为与其相等的 Right

返回

BinaryExpression

一个 BinaryExpression,其 NodeType 属性等于 RightShift,并且其 LeftRight 属性设置为指定值。

例外

leftrightnull

没有为 left.Type 和 right.Type 定义右移位运算符。

注解

生成的BinaryExpressionMethod属性设置为实现方法。 该 Type 属性设置为节点的类型。 如果解除节点,则 IsLifted 属性 IsLiftedToNull 都是 true。 否则,它们是 falseConversion 属性为 null

以下信息描述了实现方法、节点类型以及节点是否已解除。

实现方法

以下规则确定操作的所选实现方法:

  • Type如果任left一类型的属性或right表示重载右移运算符的用户定义类型,则MethodInfo表示该方法是实现方法。

  • 否则,如果left为 .类型是一个整数类型, (之一ByteSByte、、Int16UInt32Int32UInt16Int64、或UInt64相应的可为 null 的类型) 和right。类型为Int32,实现方法是null

节点类型和提升与非提升

如果实现方法不是 null

  • 如果 left。键入和 right。类型可分配给实现方法的相应参数类型,节点不会解除。 节点的类型是实现方法的返回类型。

  • 如果满足以下两个条件,则解除节点,节点的类型是对应于实现方法的返回类型的可为 null 的类型:

    • left.键入和 right。类型都是两种值类型,其中至少一个可为 null,相应的不可为 null 的类型等于实现方法的相应参数类型。

    • 实现方法的返回类型是不可为 null 的值类型。

如果实现方法为 null

  • 如果 left。键入和 right。类型都是不可为 null 的,节点不会解除。 节点的类型是预定义右移运算符的结果类型。

  • 如果 left。键入和 right。类型都是可为 null 的,节点会提升。 节点的类型是与预定义右移运算符的结果类型相对应的可以为 null 的类型。

适用于

RightShift(Expression, Expression, MethodInfo)

创建一个表示按位右移运算的 BinaryExpression

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

参数

left
Expression

要将 Expression 属性设置为与其相等的 Left

right
Expression

要将 Expression 属性设置为与其相等的 Right

method
MethodInfo

要将 MethodInfo 属性设置为与其相等的 Method

返回

BinaryExpression

一个 BinaryExpression,其 NodeType 属性等于 RightShift,并且其 LeftRightMethod 属性设置为指定值。

例外

leftrightnull

method 不是 null,它所表示的方法返回 void,而不是 static(Visual Basic 中为 Shared),或者并非采用两个参数。

methodnull,并且没有为 left.Type 和 right.Type 定义右移位运算符。

注解

生成的BinaryExpressionMethod属性设置为实现方法。 该 Type 属性设置为节点的类型。 如果提升节点,则 IsLiftedIsLiftedToNull 者均 true具有属性。 否则,它们是 falseConversion 属性为 null

以下信息描述了实现方法、节点类型以及节点是否已提升。

实现方法

以下规则确定操作的所选实现方法:

  • 如果method不是null并且它表示一个非 void, static 则表示采用两个参数的 Visual Basic) 方法中的 (Shared,它是节点的实现方法。

  • 否则,如果 Typeleft 一类型的属性或 right 表示重载右移运算符的用户定义类型,则 MethodInfo 表示该方法是实现方法。

  • 否则,如果left为 .类型是一个整数类型, (之一、Byte、、Int16UInt32UInt64Int64UInt16Int32或相应的可为 null 的类型) 和。rightSByte类型为Int32,实现方法是null

节点类型和提升与非提升

如果实现方法不是 null

  • 如果 left。键入和 right。类型可分配给实现方法的相应参数类型,不会提升节点。 节点的类型是实现方法的返回类型。

  • 如果满足以下两个条件,则会提升节点,节点的类型是对应于实现方法的返回类型的可为 null 类型:

    • left.键入和 right。类型都是至少一个可为 null 的值类型,相应的不可为 null 类型等于实现方法的相应参数类型。

    • 实现方法的返回类型是不可为 null 的值类型。

如果实现方法是 null

  • 如果 left。键入和 right。类型都是不可为 null 的,节点不会提升。 节点的类型是预定义右移运算符的结果类型。

  • 如果 left。键入和 right。类型既可为 null,又可提升节点。 节点的类型是与预定义右移运算符的结果类型相对应的可为 null 类型。

适用于