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

示例

以下示例创建一个对象,该对象表示从另一个数字减去一个 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)

适用于