System.Linq.Expressions.Expression.Add 方法
本文提供此 API 參考文件的補充備註。
方法會 Add 傳 BinaryExpression 回 屬性 Method 設定為實作方法的 。 屬性 Type 會設定為節點的類型。 如果節點隨即解除, IsLifted 和 IsLiftedToNull 屬性都是 true
。 否則,它們是 false
。 Conversion 屬性為 null
。
下列資訊描述實作方法、節點類型,以及節點是否已解除。
實作方法
下列規則會決定作業的選取實作方法:
- Type如果 或
right
的left
屬性表示多載加號運算子的使用者定義型別,MethodInfo則表示該方法的 是實作方法。 - 否則,如果
left
為 。輸入與right
。類型為數值類型,實作方法為null
。
節點類型和提升與非隨即解除的比較
如果實作方法不是 null
:
如果
left
為 。輸入與right
。類型可指派給實作方法的對應自變數類型,節點不會解除。 節點的類型是實作方法的傳回型別。如果符合下列兩個條件,則會隨即解除節點,而節點的類型是對應至實作方法傳回型別的可為 Null 類型:
left
.輸入與right
。類型都是兩種實值型別,其中至少一個可為 Null,而對應的不可為 Null 型別等於實作方法的對應自變數類型。- 實作方法的傳回型別是不可為 Null 的實值型別。
如果實作方法為 null
:
- 如果
left
為 。輸入與right
。類型都是不可為 Null 的,不會解除節點。 節點的類型是預先定義加法運算子的結果類型。 - 如果
left
為 。輸入與right
。類型都是可為 Null 的,節點會隨即解除。 節點的類型是可為 Null 的類型,對應至預先定義加法運算子的結果類型。