Expression.Negate Metod

Definition

Skapar en UnaryExpression som representerar en aritmisk negation.

Överlagringar

Name Description
Negate(Expression, MethodInfo)

Skapar en UnaryExpression som representerar en aritmisk negation.

Negate(Expression)

Skapar en UnaryExpression som representerar en aritmisk negation.

Negate(Expression, MethodInfo)

Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs

Skapar en UnaryExpression som representerar en aritmisk negation.

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

Parametrar

expression
Expression

En Expression som egenskapen Operand ska vara lika med.

method
MethodInfo

A MethodInfo för att ange egenskapen Method lika med.

Returer

En UnaryExpression som har egenskapen NodeType lika med Negate och Operand egenskaperna och Method inställda på de angivna värdena.

Undantag

expression är null.

method är inte null och metoden den representerar returnerar void, är inte static (Shared i Visual Basic), eller tar inte exakt ett argument.

method är null och operatorn unary minus har inte definierats för expression. Typ.

-eller-

expression. Typen (eller motsvarande icke-nullbar typ om den är en nullbar värdetyp) kan inte tilldelas till argumenttypen för metoden som representeras av method.

Kommentarer

Egenskapen Method för resultatet UnaryExpression är inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de falska.

Implementeringsmetod

Följande regler avgör implementeringsmetoden för åtgärden:

  • Om method inte är null och den representerar en icke-void- static-metod (Shared i Visual Basic) som tar ett argument, är det implementeringsmetoden för noden.

  • Om expression. Typ är en användardefinierad typ som definierar den unary minus-operatorn, som representerar den MethodInfo operatorn är implementeringsmetoden.

  • Annars, om expression. Typen är en numerisk typ, implementeringsmetoden är null.

Nodtyp och lyft jämfört med icke-lyft

Om implementeringsmetoden inte nullär :

  • Om expression. Typen kan tilldelas till argumenttypen för implementeringsmetoden, noden lyfts inte. Nodens typ är returtypen för implementeringsmetoden.

  • Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:

    • expression. Typen är en nullbar värdetyp och motsvarande värdetyp som inte kan nullvärde är lika med argumenttypen för implementeringsmetoden.

    • Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.

Om implementeringsmetoden är nullär expressionnodens typ . Typ. Om expression. Typen kan inte vara null, noden lyfts inte. Annars lyfts noden.

Gäller för

Negate(Expression)

Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs
Källa:
UnaryExpression.cs

Skapar en UnaryExpression som representerar en aritmisk negation.

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

Parametrar

expression
Expression

En Expression som egenskapen Operand ska vara lika med.

Returer

En UnaryExpression som har egenskapen NodeType lika med Negate och egenskapen Operand inställd på det angivna värdet.

Undantag

expression är null.

Unary minus-operatorn har inte definierats för expression. Typ.

Exempel

I följande exempel visas hur du skapar ett uttryck som representerar en aritmetik negation.

// 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

Kommentarer

Egenskapen Method för resultatet UnaryExpression är inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de falska.

Implementeringsmetod

Följande regler avgör implementeringsmetoden för åtgärden:

  • Om expression. Typ är en användardefinierad typ som definierar den unary minus-operatorn, som representerar den MethodInfo operatorn är implementeringsmetoden.

  • Annars, om expression. Typen är en numerisk typ, implementeringsmetoden är null.

Nodtyp och lyft jämfört med icke-lyft

Om implementeringsmetoden inte nullär :

  • Om expression. Typen kan tilldelas till argumenttypen för implementeringsmetoden, noden lyfts inte. Nodens typ är returtypen för implementeringsmetoden.

  • Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:

    • expression. Typen är en nullbar värdetyp och motsvarande värdetyp som inte kan nullvärde är lika med argumenttypen för implementeringsmetoden.

    • Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.

Om implementeringsmetoden är nullär expressionnodens typ . Typ. Om expression. Typen kan inte vara null, noden lyfts inte. Annars lyfts noden.

Gäller för