Expression.Add メソッド

定義

オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。

オーバーロード

名前 説明
Add(Expression, Expression)

オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。

Add(Expression, Expression, MethodInfo)

オーバーフロー チェックがない算術加算演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。

Add(Expression, Expression)

ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs

オーバーフロー チェックがない算術加算演算を表す 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 または rightnull

加算演算子は、 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されます。 それ以外の場合は、 falseConversion プロパティは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.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs

オーバーフロー チェックがない算術加算演算を表す 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 と等しく、AddLeft、およびRightプロパティが指定した値に設定されているMethod

例外

left または rightnull

methodnull されず、それを表すメソッドは voidを返すか、 static されていない (Visual Basic ではShared )、または 2 つの引数を受け取りません。

methodnull であり、加算演算子は leftに対して定義されていません。型と right。型。

注釈

Add メソッドは、BinaryExpression プロパティが実装メソッドに設定されているMethodを返します。 Type プロパティは、ノードの型に設定されます。 ノードがリフトされると、 IsLifted プロパティと IsLiftedToNull プロパティの両方が trueされます。 それ以外の場合は、 falseConversion プロパティは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 許容型です。

適用対象