Compartilhar via


Expression.Negate Método

Definição

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

Sobrecargas

Negate(Expression, MethodInfo)

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

Negate(Expression)

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

Negate(Expression, MethodInfo)

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

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

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);
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

Um Expression para definir a propriedade Operand igual a ele.

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

Retornos

Um UnaryExpression que tem a propriedade NodeType igual a Negate e as propriedades Operand e Method definidas com 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 tem exatamente um argumento.

method é null e o operador unário de menos não foi definido para expression.Type.

- ou -

expression.Type (ou o respectivo tipo que não permite valor nulo correspondente se ele é um tipo que permite valor nulo) não é atribuível ao tipo de argumento do método representado por method.

Comentários

A Method propriedade do resultante UnaryExpression é 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 trueambas . Caso contrário, eles são falsos.

Implementando método

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

  • Se method não null for 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. Type é um tipo definido pelo usuário que define o operador unary minus, 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 versão com comparação de precisão x sem comparação de precisão

Se o método de implementação não nullfor :

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

    • expression. Type é 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 permite valor nulo, o nó não é levantado. Caso contrário, o nó será levantado.

Aplica-se a

Negate(Expression)

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

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

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

Um Expression para definir a propriedade Operand igual a ele.

Retornos

Uma UnaryExpression que tem a propriedade NodeType igual a Negate e a propriedade Operand definida para o valor especificado.

Exceções

expression é null.

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

Exemplos

O exemplo a seguir 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

Comentários

A Method propriedade do resultante UnaryExpression é 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 trueambas . Caso contrário, eles são falsos.

Implementando método

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

  • Se expression. Type é um tipo definido pelo usuário que define o operador unary minus, 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 versão com comparação de precisão x sem comparação de precisão

Se o método de implementação não nullfor :

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

    • expression. Type é 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 permite valor nulo, o nó não é levantado. Caso contrário, o nó será levantado.

Aplica-se a