Expression.Add メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。
オーバーロード
| 名前 | 説明 |
|---|---|
| Add(Expression, Expression) |
オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。 |
| Add(Expression, Expression, MethodInfo) |
オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。 |
Add(Expression, Expression)
オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。
public:
static System::Linq::Expressions::BinaryExpression ^ Add(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Add(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Add : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Add (left As Expression, right As Expression) As BinaryExpression
パラメーター
- left
- Expression
Expression プロパティを等しく設定するLeft。
- right
- Expression
Expression プロパティを等しく設定するRight。
返品
BinaryExpression プロパティが NodeType と等しく、AddプロパティとLeftプロパティが指定した値に設定されているRight。
例外
left または right が null。
加算演算子は、 leftに対して定義されていません。型と right。型。
例
次のコード例は、2 つの整数を追加する式を作成する方法を示しています。
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression adds the values of its two arguments.
// Both arguments must be of the same type.
Expression sumExpr = Expression.Add(
Expression.Constant(1),
Expression.Constant(2)
);
// Print out the expression.
Console.WriteLine(sumExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<int>>(sumExpr).Compile()());
// This code example produces the following output:
//
// (1 + 2)
// 3
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression adds the values of its two arguments.
' Both arguments must be of the same type.
Dim sumExpr As Expression = Expression.Add(
Expression.Constant(1),
Expression.Constant(2)
)
' Print the expression.
Console.WriteLine(sumExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(sumExpr).Compile()())
' This code example produces the following output:
'
' (1 + 2)
' 3
注釈
Add メソッドは、BinaryExpression プロパティが実装メソッドに設定されているMethodを返します。
Type プロパティは、ノードの型に設定されます。 ノードがリフトされると、 IsLifted プロパティと IsLiftedToNull プロパティの両方が trueされます。 それ以外の場合は、 false。
Conversion プロパティはnull。
次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。
メソッドの実装
次の規則によって、選択した操作の実装方法が決まります。
-
Typeまたは
leftのいずれかのrightプロパティが加算演算子をオーバーロードするユーザー定義型を表す場合、そのメソッドを表すMethodInfoは実装メソッドです。 - それ以外の場合、もし
left.Type とright.Type が数値型の場合、実装メソッドはnullです。
ノードの種類とリフトされたノードとリフトされていないノード
実装メソッドが nullされていない場合:
left.Typeとright.Typeが実装メソッドの対応する引数型に割り当て可能な場合、ノードは持ち上げられません。 ノードの型は、実装メソッドの戻り値の型です。次の 2 つの条件が満たされている場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。
-
left.型とright。型は両方とも、少なくとも 1 つが null 許容であり、対応する null 非許容型が実装メソッドの対応する引数型と等しい値型です。 - 実装メソッドの返り値の型は非null許容型です。
-
実装メソッドが null場合:
-
left.Type とright.Type の両方が null 非許容の場合、そのノードはリフトされません。 ノードの型は、定義済みの加算演算子の結果の型です。 -
left.Type とright.Type の両方が null 許容の場合、ノードはリフトされます。 ノードの型は、定義済みの加算演算子の結果型に対応する null 許容型です。
適用対象
Add(Expression, Expression, MethodInfo)
オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。
public:
static System::Linq::Expressions::BinaryExpression ^ Add(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Add(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Add(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member Add : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Add (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression
パラメーター
- left
- Expression
Expression プロパティを等しく設定するLeft。
- right
- Expression
Expression プロパティを等しく設定するRight。
- method
- MethodInfo
MethodInfo プロパティを等しく設定するMethod。
返品
BinaryExpression プロパティが NodeType と等しく、Add、Left、およびRightプロパティが指定した値に設定されているMethod。
例外
left または right が null。
method は null されず、それを表すメソッドは voidを返すか、 static されていない (Visual Basic ではShared )、または 2 つの引数を受け取りません。
method は null であり、加算演算子は leftに対して定義されていません。型と right。型。
注釈
Add メソッドは、BinaryExpression プロパティが実装メソッドに設定されているMethodを返します。
Type プロパティは、ノードの型に設定されます。 ノードがリフトされると、 IsLifted プロパティと IsLiftedToNull プロパティの両方が trueされます。 それ以外の場合は、 false。
Conversion プロパティはnull。
次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。
メソッドの実装
次の規則によって、選択した操作の実装方法が決まります。
-
Typeまたは
leftのいずれかのrightプロパティが加算演算子をオーバーロードするユーザー定義型を表す場合、そのメソッドを表すMethodInfoは実装メソッドです。 - それ以外の場合、もし
left.Type とright.Type が数値型の場合、実装メソッドはnullです。
ノードの種類とリフトされたノードとリフトされていないノード
実装メソッドが nullされていない場合:
left.Typeとright.Typeが実装メソッドの対応する引数型に割り当て可能な場合、ノードは持ち上げられません。 ノードの型は、実装メソッドの戻り値の型です。次の 2 つの条件が満たされている場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。
-
left.型とright。型は両方とも、少なくとも 1 つが null 許容であり、対応する null 非許容型が実装メソッドの対応する引数型と等しい値型です。 - 実装メソッドの返り値の型は非null許容型です。
-
実装メソッドが null場合:
-
left.Type とright.Type の両方が null 非許容の場合、そのノードはリフトされません。 ノードの型は、定義済みの加算演算子の結果の型です。 -
left.Type とright.Type の両方が null 許容の場合、ノードはリフトされます。 ノードの型は、定義済みの加算演算子の結果型に対応する null 許容型です。