Expression.ExclusiveOr Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un BinaryExpression qui représente une opération XOR
au niveau du bit.
Surcharges
ExclusiveOr(Expression, Expression, MethodInfo) |
Crée un BinaryExpression qui représente une opération |
ExclusiveOr(Expression, Expression) |
Crée un BinaryExpression qui représente une opération |
ExclusiveOr(Expression, Expression, MethodInfo)
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
Crée un BinaryExpression qui représente une opération XOR
au niveau du bit, en utilisant op_ExclusiveOr
pour les types définis par l'utilisateur. La méthode d'implémentation peut être spécifiée.
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
Paramètres
- left
- Expression
Expression auquel la propriété Left doit être égale.
- right
- Expression
Expression auquel la propriété Right doit être égale.
- method
- MethodInfo
MethodInfo auquel la propriété Method doit être égale.
Retours
BinaryExpression dont la propriété NodeType est égale à ExclusiveOr et dont les propriétés Left, Right et Method ont les valeurs spécifiées.
Exceptions
left
ou right
est null
.
method
n’est pas null
et la méthode représentée retourne void
, pas static
(Shared
dans Visual Basic) ou ne prend pas exactement deux arguments.
method
est null
et l’opérateur XOR
n’est pas défini pour les types left
.et right
.
Remarques
La propriété résultante BinaryExpression est Method définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull sont à la IsLifted fois true
. Sinon, il s’agit de false
. La propriété Conversion a la valeur null
.
Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation choisie pour l’opération :
Si
method
n’est pasnull
et qu’il représente une méthode non void (static
Shared
en Visual Basic) qui prend deux arguments, il s’agit de la méthode d’implémentation.Sinon, si la Type propriété de
left
ouright
représente un type défini par l’utilisateur qui surcharge l’opérateurXOR
, le MethodInfo qui représente cette méthode est la méthode d’implémentation.Sinon, si
left
. Tapez etright
. Les types sont des types intégraux ou booléens, la méthode d’implémentation estnull
.
Type de nœud et lifté par rapport à non lifté
Si la méthode d’implémentation n’est pas null
:
Si
left
. Tapez etright
. Les types sont assignables aux types d’arguments correspondants de la méthode d’implémentation. Le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.Si les deux conditions suivantes sont remplies, le nœud est levé et le type du nœud est le type nullable qui correspond au type de retour de la méthode d’implémentation :
left
. Tapez etright
. Les types de valeurs sont les deux types de valeurs dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d’arguments correspondants de la méthode d’implémentation.Le type de retour de la méthode d’implémentation est un type valeur non nullable.
Si la méthode d’implémentation est null
:
Si
left
. Tapez etright
. Les types sont tous deux non nullables, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur prédéfiniXOR
.Si
left
. Tapez etright
. Les types sont tous deux nullables, le nœud est levé. Le type du nœud est le type nullable qui correspond au type de résultat de l’opérateur prédéfiniXOR
.
S’applique à
ExclusiveOr(Expression, Expression)
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
Crée un BinaryExpression qui représente une opération XOR
au niveau du bit, en utilisant op_ExclusiveOr
pour les types définis par l'utilisateur.
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
Paramètres
- left
- Expression
Expression auquel la propriété Left doit être égale.
- right
- Expression
Expression auquel la propriété Right doit être égale.
Retours
BinaryExpression dont la propriété NodeType est égale à ExclusiveOr et dont les propriétés Left et Right ont les valeurs spécifiées.
Exceptions
left
ou right
est null
.
L'opérateur XOR
n'est pas défini pour left
.Type et right
.Type.
Exemples
L’exemple de code suivant montre comment créer une expression qui représente l’opération XOR logique.
// 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
Remarques
La propriété résultante BinaryExpression est Method définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull sont à la IsLifted fois true
. Sinon, il s’agit de false
. La propriété Conversion a la valeur null
.
Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation de l’opération :
Si la Type propriété de
left
ouright
représente un type défini par l’utilisateur qui surcharge l’opérateur, leXOR
MethodInfo qui représente cette méthode est la méthode d’implémentation.Sinon, si
left
. Tapez etright
. Les types sont des types intégraux ou booléens, la méthode d’implémentation estnull
.
Type de nœud et lifté par rapport à non lifté
Si la méthode d’implémentation n’est pas null
:
Si
left
. Tapez etright
. Les types sont assignables aux types d’arguments correspondants de la méthode d’implémentation. Le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.Si les deux conditions suivantes sont remplies, le nœud est levé et le type du nœud est le type nullable qui correspond au type de retour de la méthode d’implémentation :
left
. Tapez etright
. Les types de valeurs sont les deux types de valeurs dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d’arguments correspondants de la méthode d’implémentation.Le type de retour de la méthode d’implémentation est un type valeur non nullable.
Si la méthode d’implémentation est null
:
Si
left
. Tapez etright
. Les types sont tous deux non nullables, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur prédéfiniXOR
.Si
left
. Tapez etright
. Les types sont tous deux nullables, le nœud est levé. Le type du nœud est le type nullable qui correspond au type de résultat de l’opérateur prédéfiniXOR
.