Expression.Negate Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine UnaryExpression, die einen arithmetischen Negationsvorgang darstellt.
Überlädt
Negate(Expression, MethodInfo) |
Erstellt eine UnaryExpression, die einen arithmetischen Negationsvorgang darstellt. |
Negate(Expression) |
Erstellt eine UnaryExpression, die einen arithmetischen Negationsvorgang darstellt. |
Negate(Expression, MethodInfo)
- Quelle:
- UnaryExpression.cs
- Quelle:
- UnaryExpression.cs
- Quelle:
- UnaryExpression.cs
Erstellt eine UnaryExpression, die einen arithmetischen Negationsvorgang darstellt.
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
Parameter
- expression
- Expression
Ein Expression, auf den die Operand-Eigenschaft festgelegt werden soll.
- method
- MethodInfo
Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.
Gibt zurück
Ein UnaryExpression, bei dem die NodeType-Eigenschaft gleich Negate ist und die Operand-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
expression
ist null
.
method
ist nicht null
, und die dadurch dargestellte Methode gibt void
zurück, ist nicht static
(Shared
in Visual Basic) oder akzeptiert nicht genau ein Argument.
method
ist null
, und der unäre Minusoperator ist für expression
.Type nicht definiert.
- oder -
expression
.Type (oder, sofern der Typ NULL-Werte zulässt, der entsprechende Typ, der keine NULL-Werte zulässt) kann nicht dem Argumenttyp der durch method
dargestellten Methode zugeordnet werden.
Hinweise
Die Method -Eigenschaft des resultierenden UnaryExpression wird auf die implementierende Methode festgelegt. Die Type -Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die IsLifted Eigenschaften und IsLiftedToNull beide true
. Andernfalls sind sie false.
Implementieren der Methode
Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:
Wenn
method
nichtnull
ist und eine nicht leere Methode (Shared
in Visual Basic) darstellt,static
die ein Argument akzeptiert, ist dies die implementierende Methode für den Knoten.Wenn
expression
. Type ist ein benutzerdefinierter Typ, der den unären Minusoperator definiert, der MethodInfo diesen Operator darstellt, ist die implementierende Methode.Andernfalls, wenn
expression
. Type ist ein numerischer Typ, die implementierenden Methode istnull
.
Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"
Wenn die implementierenden Methode nicht null
lautet:
Wenn
expression
. Der Typ kann dem Argumenttyp der implementierenden Methode zugewiesen werden, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten angehoben, und der Typ des Knotens ist der Nullable-Typ, der dem Rückgabetyp der implementierenden Methode entspricht:
expression
. Type ist ein Nullable-Werttyp, und der entsprechende Nicht-Nullable-Werttyp ist gleich dem Argumenttyp der implementierenden Methode.Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der nicht nullable ist.
Wenn die implementierenden Methode ist, ist null
expression
der Typ des Knotens . Typ. Wenn expression
. Der Typ kann nicht null sein, der Knoten wird nicht angehoben. Andernfalls wird der Knoten angehoben.
Gilt für:
Negate(Expression)
- Quelle:
- UnaryExpression.cs
- Quelle:
- UnaryExpression.cs
- Quelle:
- UnaryExpression.cs
Erstellt eine UnaryExpression, die einen arithmetischen Negationsvorgang darstellt.
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
Parameter
- expression
- Expression
Ein Expression, auf den die Operand-Eigenschaft festgelegt werden soll.
Gibt zurück
Ein UnaryExpression, bei dem die NodeType-Eigenschaft gleich Negate und die Operand-Eigenschaft auf den angegebenen Wert festgelegt ist.
Ausnahmen
expression
ist null
.
Der unäre Minusoperator ist für expression
.Type nicht definiert.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie ein Ausdruck erstellt wird, der einen arithmetischen Negationsvorgang darstellt.
// 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
Hinweise
Die Method -Eigenschaft des resultierenden UnaryExpression wird auf die implementierende Methode festgelegt. Die Type -Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die IsLifted Eigenschaften und IsLiftedToNull beide true
. Andernfalls sind sie false.
Implementieren der Methode
Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:
Wenn
expression
. Type ist ein benutzerdefinierter Typ, der den unären Minusoperator definiert, der MethodInfo diesen Operator darstellt, ist die implementierende Methode.Andernfalls, wenn
expression
. Type ist ein numerischer Typ, die implementierenden Methode istnull
.
Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"
Wenn die implementierenden Methode nicht null
lautet:
Wenn
expression
. Der Typ kann dem Argumenttyp der implementierenden Methode zugewiesen werden, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten angehoben, und der Typ des Knotens ist der Nullable-Typ, der dem Rückgabetyp der implementierenden Methode entspricht:
expression
. Type ist ein Nullable-Werttyp, und der entsprechende Nicht-Nullable-Werttyp ist gleich dem Argumenttyp der implementierenden Methode.Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der nicht nullable ist.
Wenn die implementierenden Methode ist, ist null
expression
der Typ des Knotens . Typ. Wenn expression
. Der Typ kann nicht null sein, der Knoten wird nicht angehoben. Andernfalls wird der Knoten angehoben.