Expression.Negate Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
methodnão fornulle representar um método não-nulo,static(Sharedem 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.