Expression.RightShift Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает BinaryExpression, представляющий побитовую операцию сдвига вправо.
Перегрузки
RightShift(Expression, Expression) |
Создает BinaryExpression, представляющий побитовую операцию сдвига вправо. |
RightShift(Expression, Expression, MethodInfo) |
Создает BinaryExpression, представляющий побитовую операцию сдвига вправо. |
RightShift(Expression, Expression)
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
Создает 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 со свойствомNodeType, равным RightShift, и свойствами Left и Right, для которых заданы указанные значения.
Исключения
Параметр left
или right
имеет значение null
.
Оператор сдвига вправо не определен для типов left
.Type и right
.Type.
Комментарии
Результирующее BinaryExpression свойство имеет Method значение реализующий метод. Свойству Type присваивается тип узла. Если узел снят, IsLifted свойства и IsLiftedToNull имеют значение true
. В противном случае они имеют значение false
. Значение свойства Conversion — null
.
Ниже приведены сведения о реализуемом методе, типе узла и о том, удаляется ли узел.
Реализация метода
Следующие правила определяют выбранный метод реализации для операции.
Type Если свойство объекта
left
илиright
представляет определяемый пользователем тип, который перегружает оператор shift вправо, объект , MethodInfo представляющий этот метод, является реализующим методом.В противном случае , если
left
. Тип является целочисленным типом (один из Byteтипов , SByte, Int16, UInt16UInt32Int32, , Int64, 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.cs
- Исходный код:
- BinaryExpression.cs
- Исходный код:
- BinaryExpression.cs
Создает 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 со свойством NodeType, равным RightShift, и свойствами Left, Right и Method, для которых заданы указанные значения.
Исключения
Параметр left
или right
имеет значение null
.
method
не имеет значение null
, и метод, который он представляет, возвращает void
, а не static
(Shared
в Visual Basic), или не принимает ровно два аргумента.
Значение method
равно null
, а оператор сдвига вправо не определен для типов left
.Type и right
.Type.
Комментарии
Результирующее BinaryExpression свойство имеет Method значение реализующий метод. Свойству Type присваивается тип узла. Если узел снят, IsLifted свойства и IsLiftedToNull имеют значение true
. В противном случае они имеют значение false
. Значение свойства Conversion — null
.
Ниже приведены сведения о реализуемом методе, типе узла и о том, удаляется ли узел.
Реализация метода
Следующие правила определяют выбранный метод реализации для операции.
Если
method
имеет значение неnull
и представляет метод non-void (static
Shared
в Visual Basic), который принимает два аргумента, он является реализующим методом для узла.В противном случае, если Type свойство объекта
left
илиright
представляет пользовательский тип, который перегружает оператор shift вправо, объект , MethodInfo представляющий этот метод, является реализующим методом.В противном случае , если
left
. Тип является целочисленным типом (один из Byteтипов , SByte, Int16, UInt16UInt32Int32, , Int64, UInt64или соответствующих типов, допускающих значение NULL) и .right
Тип — Int32, реализующим методом являетсяnull
.
Тип узла, а также отменено и не отменено
Если реализующим методом не null
является :
Если
left
. Введите иright
. Тип можно назначить соответствующим типам аргументов реализующего метода, узел не отменяется. Тип узла является типом возвращаемого значения реализующего метода.Если выполняются следующие два условия, узел приподнимается, а тип узла является типом, допускающим значение NULL, который соответствует типу возвращаемого значения реализующего метода:
left
. Введите иright
. Тип — это оба типа значений, для которых по крайней мере один из них допускает значение NULL, а соответствующие типы, не допускающие значения NULL, равны соответствующим типам аргументов реализующего метода.Тип возвращаемого значения реализующего метода является типом значения, не допускающим значения NULL.
Если реализующим методом является null
:
Если
left
. Введите иright
. Тип не допускает значения NULL, узел не отменяется. Тип узла — это тип результата предопределенного оператора сдвига вправо.Если
left
. Введите иright
. Тип допускает значение NULL, узел будет снят. Тип узла является типом, допускающим значение NULL, который соответствует типу результата предопределенного оператора сдвига вправо.