Expression.Negate Método

Definição

Cria um UnaryExpression que representa uma operação de negação aritmética.

Sobrecargas

Name Description
Negate(Expression, MethodInfo)

Cria um UnaryExpression que representa uma operação de negação aritmética.

Negate(Expression)

Cria um UnaryExpression que representa uma operação de negação aritmética.

Negate(Expression, MethodInfo)

Cria um UnaryExpression que representa uma operação de negação aritmética.

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

Parâmetros

expression
Expression

E Expression para definir a Operand propriedade igual a .

method
MethodInfo

A MethodInfo para definir a Method propriedade igual a .

Devoluções

A UnaryExpression que tem a NodeType propriedade igual a Negate e as Operand propriedades e Method definidas com os valores especificados.

Exceções

expression é null.

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

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

-ou-

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

Observações

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

Método de Implementação

As seguintes regras determinam o método de implementação da operação:

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

  • Se expression. O tipo é um tipo definido pelo utilizador que define o operador unário negativo, sendo que MethodInfo 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 Elevado versus Não Elevado

Se o método de execuçã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 satisfeitas, o nó é levantado e o tipo do nó é o tipo anulável que corresponde ao tipo de retorno do método de implementação:

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

Aplica-se a

Negate(Expression)

Cria um UnaryExpression que representa uma operação de negação aritmética.

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

Parâmetros

expression
Expression

E Expression para definir a Operand propriedade igual a .

Devoluções

A UnaryExpression que tem a NodeType propriedade igual a Negate e a Operand propriedade definida ao valor especificado.

Exceções

expression é null.

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

Exemplos

O exemplo seguinte demonstra como criar uma expressão que representa uma operação de negação aritmética.

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

// This expression represents a negation operation.
Expression negateExpr = Expression.Negate(Expression.Constant(5));

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

// This code example produces the following output:
//
// -5
' Add the following directive to your file:
' Imports System.Linq.Expressions 

' This expression represents a negation operation.
Dim negateExpr As Expression = Expression.Negate(Expression.Constant(5))

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

' This code example produces the following output:
'
' -5

Observações

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

Método de Implementação

As seguintes regras determinam o método de implementação da operação:

  • Se expression. O tipo é um tipo definido pelo utilizador que define o operador unário negativo, sendo que MethodInfo 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 Elevado versus Não Elevado

Se o método de execuçã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 satisfeitas, o nó é levantado e o tipo do nó é o tipo anulável que corresponde ao tipo de retorno do método de implementação:

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

Aplica-se a