System.Linq.Expressions.Expression.Add 方法

本文提供了此 API 参考文档的补充说明。

该方法 Add 返回一个 BinaryExpression 属性 Method 设置为实现方法。 该 Type 属性设置为节点的类型。 如果提升节点,则IsLifted两者true均为IsLiftedToNull属性。 否则,它们是 falseConversion 属性为 null

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

实现方法

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

  • Type如果任left一类型的属性或right表示重载加法运算符的用户定义类型,则MethodInfo表示该方法是实现方法。
  • 否则,如果 left为 .键入和 right。类型为数值类型,实现方法是 null

节点类型和提升与非提升

如果实现方法不是 null

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

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

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

如果实现方法是 null

  • 如果 left。键入和 right。类型都是不可为 null 的,不会解除节点。 节点的类型是预定义加法运算符的结果类型。
  • 如果 left。键入和 right。类型都是可为 null 的,将提升节点。 节点的类型是与预定义加法运算符的结果类型相对应的可为 null 类型。