Expression.Negate 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 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 true
ambas . 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ãonull
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 null
for :
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 true
ambas . 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 null
for :
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.