System.Linq.Expressions.Expression.Add メソッド
この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。
このメソッドは Add 、 BinaryExpression プロパティが実装メソッドに Method 設定されている a を返します。 この Type プロパティはノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティと IsLiftedToNull プロパティは両方とも true
. それ以外の場合は false
. Conversion プロパティが null
です。
次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。
メソッドの実装
次の規則によって、選択した操作の実装方法が決まります。
- 加算演算子を Type オーバーロードするユーザー定義型のプロパティ
left
またはright
プロパティを表す場合、 MethodInfo そのメソッドを表すメソッドは実装メソッドです。 - それ以外の場合
left
は .型とright
.型は数値型で、実装メソッドはnull
.
ノードの種類とリフトされたノードとリフトされていないノード
実装メソッドが次ではない null
場合:
If
left
.型とright
.型は実装メソッドの対応する引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。次の 2 つの条件が満たされている場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。
left
.型とright
.型は両方とも、少なくとも 1 つが null 許容であり、対応する null 非許容型が実装メソッドの対応する引数型と等しい値型です。- 実装メソッドの戻り値の型は null 非許容値型です。
実装方法が次の場合:null
- If
left
.型とright
.型はどちらも null 非許容であり、ノードはリフトされません。 ノードの型は、定義済みの加算演算子の結果の型です。 - If
left
.型とright
.型はどちらも null 許容であり、ノードはリフトされます。 ノードの型は、定義済みの加算演算子の結果型に対応する null 許容型です。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET