BinaryExpression 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示具有二进制运算符的表达式。
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) |