Bagikan melalui


Expression.ExclusiveOr Metode

Definisi

Membuat yang BinaryExpression mewakili operasi bitwise XOR .

Overload

ExclusiveOr(Expression, Expression, MethodInfo)

BinaryExpression Membuat yang mewakili operasi bitwiseXOR, menggunakan op_ExclusiveOr untuk jenis yang ditentukan pengguna. Metode penerapan dapat ditentukan.

ExclusiveOr(Expression, Expression)

BinaryExpression Membuat yang mewakili operasi bitwiseXOR, menggunakan op_ExclusiveOr untuk jenis yang ditentukan pengguna.

ExclusiveOr(Expression, Expression, MethodInfo)

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

BinaryExpression Membuat yang mewakili operasi bitwiseXOR, menggunakan op_ExclusiveOr untuk jenis yang ditentukan pengguna. Metode penerapan dapat ditentukan.

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

Parameter

left
Expression

Untuk Expression mengatur properti sama Left dengan.

right
Expression

Untuk Expression mengatur properti sama Right dengan.

method
MethodInfo

A MethodInfo untuk mengatur Method properti sama dengan.

Mengembalikan

BinaryExpression yang memiliki NodeType properti yang sama dengan ExclusiveOr dan Leftproperti , , Rightdan 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 tepat dua argumen.

method adalah null dan XOR operator 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 dan IsLiftedToNull keduanya trueadalah . Jika tidak, mereka adalah false. Properti Conversion adalah null.

Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah node diangkat.

Metode Penerapan

Aturan berikut menentukan metode penerapan yang dipilih untuk operasi:

  • Jika method tidak null dan mewakili metode non-void, 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 XOR operator, MethodInfo yang mewakili metode tersebut adalah metode penerapan.

  • Jika tidak, jika left. Ketik dan right. Jenisnya adalah jenis integral atau Boolean, metode penerapannya adalah null.

Jenis Node dan Diangkat versus Non-Lifted

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 simpul adalah jenis pengembalian dari metode penerapan.

  • Jika dua kondisi berikut terpenuhi, simpul diangkat dan jenis simpul adalah jenis yang dapat diubah ke null yang sesuai dengan jenis pengembalian metode penerapan:

    • 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 jenis nilai yang tidak dapat diubah ke null.

Jika metode penerapan adalah null:

  • Jika left. Ketik dan right. Jenis keduanya tidak dapat diubah ke null, simpul tidak diangkat. Jenis simpul adalah jenis hasil dari operator yang telah XOR ditentukan sebelumnya.

  • Jika left. Ketik dan right. Jenis keduanya dapat diubah ke null, simpul diangkat. Jenis node adalah jenis nullable yang sesuai dengan jenis hasil operator yang telah XOR ditentukan sebelumnya.

Berlaku untuk

ExclusiveOr(Expression, Expression)

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

BinaryExpression Membuat yang mewakili operasi bitwiseXOR, menggunakan op_ExclusiveOr untuk jenis yang ditentukan pengguna.

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

Parameter

left
Expression

Untuk Expression mengatur properti sama Left dengan.

right
Expression

Untuk Expression mengatur properti sama Right dengan.

Mengembalikan

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

Pengecualian

left atau right adalah null.

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

Contoh

Contoh kode berikut menunjukkan cara membuat ekspresi yang mewakili operasi XOR logis.

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

// This expression represents an exclusive OR operation for its two arguments.
// Both arguments must be of the same type,
// which can be either integer or boolean.

Expression exclusiveOrExpr = Expression.ExclusiveOr(
    Expression.Constant(5),
    Expression.Constant(3)
);

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

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

// The XOR operation is performed as follows:
// 101 xor 011 = 110

// This code example produces the following output:
//
// (5 ^ 3)
// 6
' Add the following directive to your file:
' Imports System.Linq.Expressions   

' This expression represents an exclusive OR operation for its two arguments.
' Both arguments must be of the same type, 
' which can be either integer or Boolean.

Dim exclusiveOrExpr As Expression = Expression.ExclusiveOr(
     Expression.Constant(5),
     Expression.Constant(3)
 )

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

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

' The XOR operation is performed as follows:
' 101 xor 011 = 110

' This code example produces the following output:
'
' (5 ^ 3)
' 6

Keterangan

Yang dihasilkan BinaryExpression memiliki properti yang Method diatur ke metode penerapan. Properti Type diatur ke jenis simpul. Jika simpul diangkat, IsLifted properti dan IsLiftedToNull keduanya trueadalah . Jika tidak, mereka adalah false. Properti Conversion adalah null.

Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah node 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 XOR operator, MethodInfo yang mewakili metode tersebut adalah metode penerapan.

  • Jika tidak, jika left. Ketik dan right. Jenisnya adalah jenis integral atau Boolean, metode penerapannya adalah null.

Jenis Node dan Diangkat versus Non-Lifted

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 simpul adalah jenis pengembalian dari metode penerapan.

  • Jika dua kondisi berikut terpenuhi, simpul diangkat dan jenis simpul adalah jenis yang dapat diubah ke null yang sesuai dengan jenis pengembalian metode penerapan:

    • 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 jenis nilai yang tidak dapat diubah ke null.

Jika metode penerapan adalah null:

  • Jika left. Ketik dan right. Jenis keduanya tidak dapat diubah ke null, simpul tidak diangkat. Jenis simpul adalah jenis hasil dari operator yang telah XOR ditentukan sebelumnya.

  • Jika left. Ketik dan right. Jenis keduanya dapat diubah ke null, simpul diangkat. Jenis node adalah jenis nullable yang sesuai dengan jenis hasil operator yang telah XOR ditentukan sebelumnya.

Berlaku untuk