다음을 통해 공유


Expression.Equal 메서드

정의

같음 비교를 나타내는 BinaryExpression을 만듭니다.

오버로드

Equal(Expression, Expression)

같음 비교를 나타내는 BinaryExpression을 만듭니다.

Equal(Expression, Expression, Boolean, MethodInfo)

같음 비교를 나타내는 BinaryExpression을 만듭니다. 구현 메서드를 지정할 수 있습니다.

Equal(Expression, Expression)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
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이고 EqualLeft 속성이 지정된 값으로 설정된 Right입니다.

예외

left 또는 rightnull인 경우

left.Type 및 right.Type에 같음 연산자가 정의되지 않은 경우

예제

다음 코드 예제에서는 두 인수의 값이 같은지 여부를 확인하는 식을 만드는 방법을 보여줍니다.

// 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입니다. 다음 정보는 구현 메서드, 노드 형식 및 노드 해제 여부를 설명합니다.

구현 방법

다음 규칙은 작업에 대한 구현 메서드를 결정합니다.

  • 또는 rightleft 속성이 Type 같음 연산 MethodInfo 자를 오버로드하는 사용자 정의 형식을 나타내는 경우 해당 메서드를 나타내는 는 구현 메서드입니다.

  • 그렇지 않으면 구현 메서드는 입니다 null.

노드 유형 및 해제됨 및 해제되지 않은 노드

구현 메서드가 이 아닌 null경우:

  • 인 경우 left 및 를 입력합니다 right. 형식은 구현 메서드의 해당 인수 형식에 할당할 수 있으며 노드는 해제되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.

  • 다음 두 조건이 충족되면 노드가 해제되고 노드 유형이 입니다 Boolean.

    • left. 및 를 입력합니다 right. 형식은 둘 다 하나 이상의 null 허용 값 형식이며 해당 nullable이 아닌 형식은 구현 메서드의 해당 인수 형식과 같습니다.

    • 구현 메서드의 반환 형식은 입니다 Boolean.

구현 메서드가 인 경우:null

  • 인 경우 left 및 를 입력합니다 right. 형식은 모두 nullable이 아니고 노드가 해제되지 않습니다. 노드의 형식은 입니다 Boolean.

  • 인 경우 left 및 를 입력합니다 right. 형식은 모두 nullable이고 노드는 해제됩니다. 노드의 형식은 입니다 Boolean.

적용 대상

Equal(Expression, Expression, Boolean, MethodInfo)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
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로 설정하려면 true이고, falseIsLiftedToNull로 설정하려면 false입니다.

method
MethodInfo

MethodInfo 속성에 설정할 Method입니다.

반환

BinaryExpression 속성이 NodeType이고 Equal, Left, RightIsLiftedToNull 속성이 지정된 값으로 설정된 Method입니다.

예외

left 또는 rightnull인 경우

methodnull이 아니고 이것이 나타내는 메서드가 void를 반환하거나, static(Visual Basic의 Shared)이 아니거나, 정확히 두 개의 인수를 사용하지 않는 경우

methodnull이고 left.Type 및 right.Type에 같음 연산자가 정의되지 않은 경우

설명

결과 BinaryExpression 속성은 Method 구현 메서드로 설정됩니다. 속성은 Type 노드의 형식으로 설정됩니다. 노드가 해제되면 속성은 IsLifted 이고 속성 trueIsLiftedToNull 와 같습니다 liftToNull. 그렇지 않으면 둘 다 false입니다. 다음 정보는 구현 메서드, 노드 형식 및 노드 해제 여부를 설명합니다.

구현 방법

다음 규칙은 작업에 대한 구현 메서드를 결정합니다.

  • 가 이 아니고 두 개의 인수를 사용하는 void static 가 아닌 null (Shared Visual Basic의 경우) 메서드를 나타내는 경우 method 구현 메서드입니다.

  • 그렇지 않으면 또는 rightleft 속성이 Type 같음 연산 MethodInfo 자를 오버로드하는 사용자 정의 형식을 나타내는 경우 해당 메서드를 나타내는 는 구현 메서드입니다.

  • 그렇지 않으면 구현 메서드는 입니다 null.

노드 유형 및 해제됨 및 해제되지 않은 노드

구현 메서드가 이 아닌 null경우:

  • 인 경우 left 및 를 입력합니다 right. 형식은 구현 메서드의 해당 인수 형식에 할당할 수 있으며 노드는 해제되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.

  • 다음 두 조건이 충족되면 노드가 해제됩니다. 또한 가 이거나 Boolean 이 인 경우 liftToNullliftToNull 노드의 형식은 true null 허용 Boolean 됩니다false.

    • left. 및 를 입력합니다 right. 형식은 둘 다 하나 이상의 null 허용 값 형식이며 해당 nullable이 아닌 형식은 구현 메서드의 해당 인수 형식과 같습니다.

    • 구현 메서드의 반환 형식은 입니다 Boolean.

구현 메서드가 인 경우:null

  • 인 경우 left 및 를 입력합니다 right. 형식은 모두 nullable이 아니고 노드가 해제되지 않습니다. 노드의 형식은 입니다 Boolean.

  • 인 경우 left 및 를 입력합니다 right. 형식은 모두 nullable이고 노드는 해제됩니다. 가 이거나 BooleanliftToNull 이면 liftToNull 노드의 형식이 true null 허용 Boolean 됩니다false.

적용 대상