Bagikan melalui


Expression.Equal Metode

Definisi

Membuat yang BinaryExpression mewakili perbandingan kesetaraan.

Overload

Equal(Expression, Expression)

Membuat yang BinaryExpression mewakili perbandingan kesetaraan.

Equal(Expression, Expression, Boolean, MethodInfo)

Membuat yang BinaryExpression mewakili perbandingan kesetaraan. Metode penerapan dapat ditentukan.

Equal(Expression, Expression)

Sumber:
BinaryExpression.cs
Sumber:
BinaryExpression.cs
Sumber:
BinaryExpression.cs

Membuat yang BinaryExpression mewakili perbandingan kesetaraan.

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

Parameter

left
Expression

Untuk Expression mengatur properti yang Left sama dengan.

right
Expression

Untuk Expression mengatur properti yang Right sama dengan.

Mengembalikan

BinaryExpression yang memiliki NodeType properti yang sama dengan Equal dan Left properti dan Right diatur ke nilai yang ditentukan.

Pengecualian

left atau right adalah null.

Operator kesetaraan tidak didefinisikan untuk left. Ketik dan right. Jenis.

Contoh

Contoh kode berikut menunjukkan cara membuat ekspresi yang memeriksa apakah nilai dari dua argumennya sama.

// 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

Keterangan

Yang dihasilkan BinaryExpression memiliki properti yang Method diatur ke metode penerapan. Properti Type diatur ke jenis simpul. Jika simpul diangkat, IsLifted propertinya adalah true. Jika tidak, ini adalah false. Properti IsLiftedToNull selalu false. Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah simpul diangkat.

Metode Penerapan

Aturan berikut menentukan metode penerapan untuk operasi:

  • Type Jika properti dari salah satu left atau right mewakili jenis yang ditentukan pengguna yang membebani operator kesetaraan, MethodInfo yang mewakili metode tersebut adalah metode penerapan.

  • Jika tidak, metode penerapannya adalah null.

Jenis Node dan Diangkat versus Tidak Diangkat

Jika metode penerapan bukan null:

  • Jika left. Ketik dan right. Jenis dapat ditetapkan ke jenis argumen yang sesuai dari metode penerapan, simpul tidak diangkat. Jenis node adalah jenis pengembalian dari metode penerapan.

  • Jika dua kondisi berikut terpenuhi, simpul diangkat dan jenis node adalah Boolean:

    • left. Ketik dan right. Jenis adalah kedua jenis nilai yang setidaknya satu dapat diubah ke null dan jenis yang tidak dapat diubah ke null yang sesuai sama dengan jenis argumen yang sesuai dari metode penerapan.

    • Jenis pengembalian metode penerapan adalah Boolean.

Jika metode penerapan adalah null:

  • Jika left. Ketik dan right. Jenis keduanya tidak dapat diubah ke null, simpul tidak diangkat. Jenis node adalah Boolean.

  • Jika left. Ketik dan right. Jenis keduanya dapat diubah ke null, simpul diangkat. Jenis node adalah Boolean.

Berlaku untuk

Equal(Expression, Expression, Boolean, MethodInfo)

Sumber:
BinaryExpression.cs
Sumber:
BinaryExpression.cs
Sumber:
BinaryExpression.cs

Membuat yang BinaryExpression mewakili perbandingan kesetaraan. Metode penerapan dapat ditentukan.

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

Parameter

left
Expression

Untuk Expression mengatur properti yang Left sama dengan.

right
Expression

Untuk Expression mengatur properti yang Right sama dengan.

liftToNull
Boolean

true untuk mengatur IsLiftedToNull ke true; false untuk mengatur IsLiftedToNull ke false.

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

Mengembalikan

BinaryExpression yang memiliki NodeType properti yang sama dengan Equal dan Leftproperti , , Right, IsLiftedToNulldan Method diatur ke nilai yang ditentukan.

Pengecualian

left atau right adalah null.

method bukan null dan metode yang diwakilinya mengembalikan void, bukan static (Shared dalam Visual Basic), atau tidak mengambil dua argumen persis.

method adalah null dan operator kesetaraan tidak didefinisikan untuk left. Ketik dan right. Jenis.

Keterangan

Yang dihasilkan BinaryExpression memiliki properti yang Method diatur ke metode penerapan. Properti Type diatur ke jenis simpul. Jika simpul diangkat, IsLifted properti adalah true dan IsLiftedToNull properti sama dengan liftToNull. Jika tidak, keduanya adalah false. Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah simpul diangkat.

Metode Penerapan

Aturan berikut menentukan metode penerapan untuk operasi:

  • Jika method tidak null dan mewakili metode non-batal, static (Shared dalam Visual Basic) yang mengambil dua argumen, itu adalah metode penerapan.

  • Jika tidak, jika Type properti dari salah satu left atau right mewakili jenis yang ditentukan pengguna yang membebani operator kesetaraan, MethodInfo yang mewakili metode tersebut adalah metode penerapan.

  • Jika tidak, metode penerapannya adalah null.

Jenis Node dan Diangkat versus Tidak Diangkat

Jika metode penerapan bukan null:

  • Jika left. Ketik dan right. Jenis dapat ditetapkan ke jenis argumen yang sesuai dari metode penerapan, simpul tidak diangkat. Jenis node adalah jenis pengembalian dari metode penerapan.

  • Jika dua kondisi berikut terpenuhi, simpul diangkat; juga, jenis node dapat diubah ke Boolean null jika liftToNull adalah true atau Boolean jika liftToNull adalah false:

    • left. Ketik dan right. Jenis adalah kedua jenis nilai yang setidaknya satu dapat diubah ke null dan jenis yang tidak dapat diubah ke null yang sesuai sama dengan jenis argumen yang sesuai dari metode penerapan.

    • Jenis pengembalian metode penerapan adalah Boolean.

Jika metode penerapan adalah null:

  • Jika left. Ketik dan right. Jenis keduanya tidak dapat diubah ke null, simpul tidak diangkat. Jenis node adalah Boolean.

  • Jika left. Ketik dan right. Jenis keduanya dapat diubah ke null, simpul diangkat. Jenis node dapat diubah ke Boolean null jika liftToNull adalah true atau Boolean jika liftToNull adalah false.

Berlaku untuk