BinaryExpression Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет выражение с двоичным оператором.
public ref class BinaryExpression : System::Linq::Expressions::Expression
public ref class BinaryExpression sealed : System::Linq::Expressions::Expression
public class BinaryExpression : System.Linq.Expressions.Expression
public sealed class BinaryExpression : System.Linq.Expressions.Expression
type BinaryExpression = class
inherit Expression
Public Class BinaryExpression
Inherits Expression
Public NotInheritable Class BinaryExpression
Inherits Expression
- Наследование
Примеры
В следующем примере создается BinaryExpression объект, представляющий вычитание одного числа из другого.
// Create a BinaryExpression that represents subtracting 14 from 53.
System.Linq.Expressions.BinaryExpression binaryExpression =
System.Linq.Expressions.Expression.MakeBinary(
System.Linq.Expressions.ExpressionType.Subtract,
System.Linq.Expressions.Expression.Constant(53),
System.Linq.Expressions.Expression.Constant(14));
Console.WriteLine(binaryExpression.ToString());
// This code produces the following output:
//
// (53 - 14)
' Create a BinaryExpression that represents subtracting 14 from 53.
Dim binaryExpression As System.Linq.Expressions.BinaryExpression = _
System.Linq.Expressions.Expression.MakeBinary( _
System.Linq.Expressions.ExpressionType.Subtract, _
System.Linq.Expressions.Expression.Constant(53), _
System.Linq.Expressions.Expression.Constant(14))
Console.WriteLine(binaryExpression.ToString())
' This code produces the following output:
'
' (53 - 14)
Комментарии
Класс BinaryExpression представляет выражение с двоичным оператором.
В следующих таблицах обобщены методы фабрики, которые можно использовать для создания BinaryExpression, имеющего конкретный тип узла, определяемый свойством NodeType. Каждая таблица содержит сведения для определенного класса операций, таких как арифметические или побитовые.
Двоичные арифметические операции
| Тип узла | Фабричный Метод |
|---|---|
| Add | Add |
| AddChecked | AddChecked |
| Divide | Divide |
| Modulo | Modulo |
| Multiply | Multiply |
| MultiplyChecked | MultiplyChecked |
| Power | Power |
| Subtract | Subtract |
| SubtractChecked | SubtractChecked |
Побитовые операции
| Тип узла | Фабричный Метод |
|---|---|
| And | And |
| Or | Or |
| ExclusiveOr | ExclusiveOr |
Операции сдвига
| Тип узла | Фабричный Метод |
|---|---|
| LeftShift | LeftShift |
| RightShift | RightShift |
Условные логические операции
| Тип узла | Фабричный Метод |
|---|---|
| AndAlso | AndAlso |
| OrElse | OrElse |
Операции сравнения
| Тип узла | Фабричный Метод |
|---|---|
| Equal | Equal |
| NotEqual | NotEqual |
| GreaterThanOrEqual | GreaterThanOrEqual |
| GreaterThan | GreaterThan |
| LessThan | LessThan |
| LessThanOrEqual | LessThanOrEqual |
Операции объединения
| Тип узла | Фабричный Метод |
|---|---|
| Coalesce | Coalesce |
Операции индексирования массивов
| Тип узла | Фабричный Метод |
|---|---|
| ArrayIndex | ArrayIndex |
Кроме того, MakeBinary методы также можно использовать для создания BinaryExpression. Эти фабричные методы можно использовать для создания BinaryExpression любого типа узла, представляющего двоичную операцию. Параметр этих методов, который имеет тип NodeType , указывает нужный тип узла.
Свойства
| Имя | Описание |
|---|---|
| CanReduce |
Возвращает значение, указывающее, можно ли уменьшить узел дерева выражений. |
| Conversion |
Возвращает функцию преобразования типов, используемую операцией объединения или составной операции назначения. |
| IsLifted |
Возвращает значение, указывающее, представляет ли узел дерева выражений вызов оператора. |
| IsLiftedToNull |
Возвращает значение, указывающее, представляет ли узел дерева выражений вызов оператора, возвращаемый тип которого возвращается к типу NULL. |
| Left |
Возвращает левый операнд двоичной операции. |
| Method |
Возвращает метод реализации для двоичной операции. |
| NodeType |
Возвращает тип узла данного Expressionобъекта. (Унаследовано от Expression) |
| Right |
Возвращает правый операнд двоичной операции. |
| Type |
Возвращает статический тип выражения, представляющего это Expression выражение. (Унаследовано от Expression) |
Методы
| Имя | Описание |
|---|---|
| Accept(ExpressionVisitor) |
Отправляется в конкретный метод посещения для этого типа узла. Например, MethodCallExpression вызывает объект VisitMethodCall(MethodCallExpression). |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Reduce() |
Уменьшает узел двоичного выражения до более простого выражения. |
| ReduceAndCheck() |
Сокращает этот узел до более простого выражения. Если CanReduce возвращает значение true, это должно возвращать допустимое выражение. Этот метод может возвращать другой узел, который должен быть сокращен. (Унаследовано от Expression) |
| ReduceExtensions() |
Уменьшает выражение до известного типа узла (который не является узлом расширения) или просто возвращает выражение, если оно уже известного типа. (Унаследовано от Expression) |
| ToString() |
Возвращает текстовое представление Expressionобъекта . (Унаследовано от Expression) |
| Update(Expression, LambdaExpression, Expression) |
Создает новое выражение, аналогичное этому, но используя предоставленные дочерние элементы. Если все дочерние элементы одинаковы, он вернет это выражение. |
| VisitChildren(ExpressionVisitor) |
Уменьшает узел, а затем вызывает делегат посетителя в сокращенном выражении. Метод создает исключение, если узел не является редуцируемым. (Унаследовано от Expression) |