Expression.ExclusiveOr Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um BinaryExpression que representa uma operação XOR
bit a bit.
Sobrecargas
ExclusiveOr(Expression, Expression, MethodInfo) |
Cria um BinaryExpression que representa uma operação |
ExclusiveOr(Expression, Expression) |
Cria um BinaryExpression que representa uma operação |
ExclusiveOr(Expression, Expression, MethodInfo)
- Origem:
- BinaryExpression.cs
- Origem:
- BinaryExpression.cs
- Origem:
- BinaryExpression.cs
Cria um BinaryExpression que representa uma operação XOR
bit a bit, usando op_ExclusiveOr
para tipos definidos pelo usuário. O método de implementação pode ser especificado.
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
Parâmetros
- left
- Expression
Um Expression para definir a propriedade Left igual a ele.
- right
- Expression
Um Expression para definir a propriedade Right igual a ele.
- method
- MethodInfo
Um MethodInfo para definir a propriedade Method igual a ele.
Retornos
Um BinaryExpression que tem a propriedade NodeType igual a ExclusiveOr e as propriedades Left, Right e Method definidas com os valores especificados.
Exceções
left
ou right
é null
.
method
não é null
e o método que ele representa retorna void
, não é static
(Shared
no Visual Basic) ou não tem exatamente dois argumentos.
method
é null
e o operador XOR
não foi definido para left
.Type e right
.Type.
Comentários
O resultante BinaryExpression tem a Method propriedade definida como o método de implementação. A Type propriedade é definida como o tipo do nó. Se o nó for levantado, as IsLifted propriedades e IsLiftedToNull serão true
. Caso contrário, eles serão false
. A propriedade Conversion é null
.
As informações a seguir descrevem o método de implementação, o tipo de nó e se um nó é levantado.
Implementando método
As regras a seguir determinam o método de implementação escolhido para a operação:
Se
method
nãonull
for e representar um método não nulo,static
(Shared
no Visual Basic) que usa dois argumentos, é o método de implementação.Caso contrário, se a Type propriedade de
left
ouright
representar um tipo definido pelo usuário que sobrecarrega oXOR
operador, o MethodInfo que representa esse método é o método de implementação.Caso contrário, se
left
. Digite eright
. O tipo é integral ou tipos boolianos, o método de implementação énull
.
Tipo de nó e versão com comparação de precisão x sem comparação de precisão
Se o método de implementação não null
for :
Se
left
. Digite eright
. O tipo é atribuível aos tipos de argumento correspondentes do método de implementação, o nó não é levantado. O tipo do nó é o tipo de retorno do método de implementação.Se as duas condições a seguir forem atendidas, o nó será levantado e o tipo do nó será o tipo que permite valor nulo que corresponde ao tipo de retorno do método de implementação:
left
. Digite eright
. Tipo são tipos de valor dos quais pelo menos um é anulável e os tipos não anuláveis correspondentes são iguais aos tipos de argumento correspondentes do método de implementação.O tipo de retorno do método de implementação é um tipo de valor não anulável.
Se o método de implementação for null
:
Se
left
. Digite eright
. O tipo não permite valor nulo, o nó não é levantado. O tipo do nó é o tipo de resultado do operador predefinidoXOR
.Se
left
. Digite eright
. O tipo é anulável, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador predefinidoXOR
.
Aplica-se a
ExclusiveOr(Expression, Expression)
- Origem:
- BinaryExpression.cs
- Origem:
- BinaryExpression.cs
- Origem:
- BinaryExpression.cs
Cria um BinaryExpression que representa uma operação XOR
bit a bit, usando op_ExclusiveOr
para tipos definidos pelo usuário.
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
Parâmetros
- left
- Expression
Um Expression para definir a propriedade Left igual a ele.
- right
- Expression
Um Expression para definir a propriedade Right igual a ele.
Retornos
Um BinaryExpression que tem a propriedade NodeType igual a ExclusiveOr e as propriedades Left e Right definidas com os valores especificados.
Exceções
left
ou right
é null
.
O operador XOR
não está definido para left
.Type e right
.Type.
Exemplos
O exemplo de código a seguir mostra como criar uma expressão que representa a operação XOR lógica.
// 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
Comentários
O resultante BinaryExpression tem a Method propriedade definida como o método de implementação. A Type propriedade é definida como o tipo do nó. Se o nó for levantado, as IsLifted propriedades e IsLiftedToNull serão true
. Caso contrário, eles serão false
. A propriedade Conversion é null
.
As informações a seguir descrevem o método de implementação, o tipo de nó e se um nó é levantado.
Implementando método
As regras a seguir determinam o método de implementação para a operação:
Se a Type propriedade de
left
ouright
representar um tipo definido pelo usuário que sobrecarrega oXOR
operador, o MethodInfo que representa esse método é o método de implementação.Caso contrário, se
left
. Digite eright
. O tipo é integral ou tipos boolianos, o método de implementação énull
.
Tipo de nó e versão com comparação de precisão x sem comparação de precisão
Se o método de implementação não null
for :
Se
left
. Digite eright
. O tipo é atribuível aos tipos de argumento correspondentes do método de implementação, o nó não é levantado. O tipo do nó é o tipo de retorno do método de implementação.Se as duas condições a seguir forem atendidas, o nó será levantado e o tipo do nó será o tipo que permite valor nulo que corresponde ao tipo de retorno do método de implementação:
left
. Digite eright
. Tipo são tipos de valor dos quais pelo menos um é anulável e os tipos não anuláveis correspondentes são iguais aos tipos de argumento correspondentes do método de implementação.O tipo de retorno do método de implementação é um tipo de valor não anulável.
Se o método de implementação for null
:
Se
left
. Digite eright
. O tipo não permite valor nulo, o nó não é levantado. O tipo do nó é o tipo de resultado do operador predefinidoXOR
.Se
left
. Digite eright
. O tipo é anulável, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador predefinidoXOR
.