Expression.Equal メソッド

定義

等価比較を表す BinaryExpression を作成します。

オーバーロード

Equal(Expression, Expression)

等価比較を表す BinaryExpression を作成します。

Equal(Expression, Expression, Boolean, MethodInfo)

等価比較を表す BinaryExpression を作成します。 実装メソッドを指定できます。

Equal(Expression, Expression)

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

等価比較を表す BinaryExpression を作成します。

public:
 static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression) As BinaryExpression

パラメーター

left
Expression

Expression プロパティを等しく設定する Left

right
Expression

Expression プロパティを等しく設定する Right

戻り値

BinaryExpression と等しい NodeType プロパティと、指定した値に設定された Equal プロパティおよび Left プロパティを含む Right

例外

left または rightnull です。

等値演算子は、left.Type および right.Type に対して定義されていません。

次のコード例は、2 つの引数の値が等しいかどうかをチェックする式を作成する方法を示しています。

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression compares the values of its two arguments.
// Both arguments need to be of the same type.
Expression equalExpr = Expression.Equal(
    Expression.Constant(42),
    Expression.Constant(45)
);

// Print out the expression.
Console.WriteLine(equalExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda<Func<bool>>(equalExpr).Compile()());

// This code example produces the following output:
//
// (42 == 45)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression compares the values of its two arguments.
' Both arguments must be of the same type.
Dim equalExpr As Expression = Expression.Equal(
    Expression.Constant(42),
    Expression.Constant(45)
)

' Print the expression.
Console.WriteLine(equalExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda(Of Func(Of Boolean))(equalExpr).Compile()())

' This code example produces the following output:
'
' (42 == 45)
' False

注釈

結果 BinaryExpression の プロパティは Method 、実装メソッドに設定されます。 プロパティは Type ノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティは です true。 それ以外の場合は、false となります。 IsLiftedToNull プロパティは常に falseです。 次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。

メソッドの実装

次の規則は、操作の実装方法を決定します。

  • または right のいずれかの left プロパティがType、等値演算子をオーバーロードするユーザー定義型を表す場合、MethodInfoそのメソッドを表す は実装メソッドです。

  • それ以外の場合、実装メソッドは です null

ノードの種類とリフトされたノードと非リフト

実装メソッドが でない null場合:

  • の場合 left。と 入力します right。型は実装メソッドの対応する引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。

  • 次の 2 つの条件が満たされた場合、ノードはリフトされ、ノードの種類は です Boolean

    • left.と 入力します right。型は両方とも の値型であり、少なくとも 1 つは null 許容であり、対応する null 非許容型は実装メソッドの対応する引数型と等しくなります。

    • 実装メソッドの戻り値の型は です Boolean

実装メソッドが の場合:null

  • の場合 left。と 入力します right。型はどちらも null 非許容であり、ノードはリフトされません。 ノードの種類は です Boolean

  • の場合 left。と 入力します right。型はどちらも null 許容であり、ノードはリフトされます。 ノードの種類は です Boolean

適用対象

Equal(Expression, Expression, Boolean, MethodInfo)

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

等価比較を表す BinaryExpression を作成します。 実装メソッドを指定できます。

public:
 static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, bool liftToNull, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo? method);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * bool * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression, liftToNull As Boolean, method As MethodInfo) As BinaryExpression

パラメーター

left
Expression

Expression プロパティを等しく設定する Left

right
Expression

Expression プロパティを等しく設定する Right

liftToNull
Boolean

trueIsLiftedToNull に設定する場合は truefalseIsLiftedToNull に設定する場合は false

method
MethodInfo

MethodInfo プロパティを等しく設定する Method

戻り値

BinaryExpression と等しい NodeType プロパティと、指定した値に設定された EqualLeftRight、および IsLiftedToNull の各プロパティを含む Method

例外

left または rightnull です。

methodnull ではなく、それを表すメソッドは void を返し、static (Visual Basic では Shared) ではなく、またはちょうど 2 つの引数を受け取りません。

methodnull で、等値演算子は left.Type および right.Type に対して定義されていません。

注釈

結果 BinaryExpression の プロパティは Method 、実装メソッドに設定されます。 プロパティは Type ノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティは で trueIsLiftedToNull プロパティは と liftToNull等しくなります。 それ以外の場合は、両方とも falseです。 次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。

メソッドの実装

次の規則は、操作の実装方法を決定します。

  • が でなくnullstatic 2 つの引数を受け取る (SharedVisual Basic の場合) 非 void メソッドを表す場合methodは、実装メソッドです。

  • それ以外の場合、 または right のいずれかの left プロパティが等値演算子をオーバーロードするユーザー定義型を表す場合TypeMethodInfoそのメソッドを表す は実装メソッドです。

  • それ以外の場合、実装メソッドは です null

ノードの種類とリフトされたノードと非リフト

実装メソッドが でない null場合:

  • の場合 left。と 入力します right。型は実装メソッドの対応する引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。

  • 次の 2 つの条件が満たされた場合、ノードはリフトされます。また、 が の場合、または が の場合liftToNull、ノードの型は Booleantrue null 許容BooleanになりますfalseliftToNull

    • left.と 入力します right。型は両方とも の値型であり、少なくとも 1 つは null 許容であり、対応する null 非許容型は実装メソッドの対応する引数型と等しくなります。

    • 実装メソッドの戻り値の型は です Boolean

実装メソッドが の場合:null

  • の場合 left。と 入力します right。型はどちらも null 非許容であり、ノードはリフトされません。 ノードの種類は です Boolean

  • の場合 left。と 入力します right。型はどちらも null 許容であり、ノードはリフトされます。 が の場合、または Boolean が の場合liftToNullliftToNull、ノードの型は true null 許容Booleanですfalse

適用対象