Compartilhar via


Expression.Not Método

Definição

Cria uma UnaryExpression operação de complemento bit a bit.

Sobrecargas

Nome Description
Not(Expression)

Cria uma UnaryExpression operação de complemento bit a bit.

Not(Expression, MethodInfo)

Cria uma UnaryExpression operação de complemento bit a bit. O método de implementação pode ser especificado.

Not(Expression)

Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs

Cria uma UnaryExpression operação de complemento bit a bit.

public:
 static System::Linq::Expressions::UnaryExpression ^ Not(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression Not(System.Linq.Expressions.Expression expression);
static member Not : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function Not (expression As Expression) As UnaryExpression

Parâmetros

expression
Expression

Um Expression para definir a Operand propriedade igual a.

Retornos

Um UnaryExpression que tem a NodeType propriedade igual a Not e a Operand propriedade definida como o valor especificado.

Exceções

expression é null.

O operador unário not não está definido para expression. Tipo.

Exemplos

O exemplo a seguir demonstra como criar uma expressão que representa uma operação NOT lógica.

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

// This expression represents a NOT operation.
Expression notExpr = Expression.Not(Expression.Constant(true));

Console.WriteLine(notExpr);

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

// This code example produces the following output:
//
// Not(True)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions 

' This expression represents a NOT operation.
Dim notExpr As Expression = Expression.Not(Expression.Constant(True))

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

' This code example produces the following output:
'
' Not(True)
' False

Comentários

A Method propriedade do resultado UnaryExpression é definida como o método de implementação. A propriedade Type é definida como o tipo do nó. Se o nó for levantado, as propriedades IsLifted e IsLiftedToNull serão ambas true. Caso contrário, elas serão false.

Implementando método

As regras a seguir determinam o método de implementação para a operação:

  • Se expression. O tipo é um tipo definido pelo usuário que define o operador unário not, o MethodInfo que representa esse operador é o método de implementação.

  • Caso contrário, se expression. O tipo é numérico ou booliano, o método de implementação é null.

Tipo de nó e levantado versus não-levantado

Se o método de implementação não for null:

  • Se expression. O tipo é atribuível ao tipo de argumento 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ó terá comparação de precisão e o tipo do nó será o tipo anulável que corresponde ao tipo de retorno do método de implementação:

    • expression. O tipo é um tipo de valor anulável e o tipo não anulável correspondente é igual ao tipo de argumento 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, o tipo do nó será expression. Tipo. Se expression. O tipo não é anulável, o nó não é levantado. Caso contrário, o nó será levantado.

Aplica-se a

Not(Expression, MethodInfo)

Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs
Origem:
UnaryExpression.cs

Cria uma UnaryExpression operação de complemento bit a bit. O método de implementação pode ser especificado.

public:
 static System::Linq::Expressions::UnaryExpression ^ Not(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Not(System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Not(System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo? method);
static member Not : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Not (expression As Expression, method As MethodInfo) As UnaryExpression

Parâmetros

expression
Expression

Um Expression para definir a Operand propriedade igual a.

method
MethodInfo

A MethodInfo para definir a Method propriedade igual a.

Retornos

Um UnaryExpression que tem a NodeType propriedade igual a Not e as Operand propriedades e Method definidas para os valores especificados.

Exceções

expression é null.

method não null é e o método que ele representa retorna void, não static é (Shared no Visual Basic) ou não usa exatamente um argumento.

method é null e o operador unário not não está definido para expression. Tipo.

- ou -

expression. O tipo (ou seu tipo não anulável correspondente se for um tipo de valor anulável) não é atribuível ao tipo de argumento do método representado por method.

Comentários

A Method propriedade do resultado UnaryExpression é definida como o método de implementação. A propriedade Type é definida como o tipo do nó. Se o nó for levantado, as propriedades IsLifted e IsLiftedToNull serão ambas true. Caso contrário, elas serão false.

Implementando método

As regras a seguir determinam o método de implementação para a operação:

  • Se method não null estiver e representar um método não nulo, static (Shared no Visual Basic) que usa um argumento, é o método de implementação para o nó.

  • Se expression. O tipo é um tipo definido pelo usuário que define o operador unário not, o MethodInfo que representa esse operador é o método de implementação.

  • Caso contrário, se expression. O tipo é um tipo numérico, o método de implementação é null.

Tipo de nó e levantado versus não-levantado

Se o método de implementação não for null:

  • Se expression. O tipo é atribuível ao tipo de argumento 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ó terá comparação de precisão e o tipo do nó será o tipo anulável que corresponde ao tipo de retorno do método de implementação:

    • expression. O tipo é um tipo de valor anulável e o tipo de valor não anulável correspondente é igual ao tipo de argumento 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, o tipo do nó será expression. Tipo. Se expression. O tipo não é anulável, o nó não é levantado. Caso contrário, o nó será levantado.

Aplica-se a