(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Expression.Negate-Methode (Expression)

Erstellt eine UnaryExpression, die einen arithmetischen Negationsvorgang darstellt.

Namespace:  System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static UnaryExpression Negate(
	Expression expression
)

Parameter

expression
Typ: System.Linq.Expressions.Expression
Eine Expression, auf die die Operand-Eigenschaft festgelegt werden soll.

Rückgabewert

Typ: System.Linq.Expressions.UnaryExpression
Ein UnaryExpression, bei dem die NodeType-Eigenschaft gleich Negate und die Operand-Eigenschaft auf den angegebenen Wert festgelegt ist.

AusnahmeBedingung
ArgumentNullException

expression ist null.

InvalidOperationException

Der unäre Minusoperator ist für expression.Type nicht definiert.

Die Method-Eigenschaft der resultierenden UnaryExpression ist auf die implementierende Methode festgelegt. Die Type-Eigenschaft ist auf den Typ des Knotens festgelegt. Wenn der Knoten transformiert ist, entspricht sowohl die IsLifted-Eigenschaft als auch die IsLiftedToNull-Eigenschaft true. Andernfalls sind sie false.

Bb301968.collapse_all(de-de,VS.110).gifImplementierende Methode

Die folgenden Regeln bestimmen die implementierende Methode für die Operation:

  • Wenn expression.Type ein benutzerdefinierter Typ ist, der den unären Minusoperator definiert, ist die MethodInfo, die diesen Operator darstellt, die implementierende Methode.

  • Andernfalls gilt: Wenn expression.Type ein numerischer Typ ist, ist die implementierende Methode null.

Bb301968.collapse_all(de-de,VS.110).gifKnotentyp, transformierte Knoten und nicht transformierte Knoten

Wenn die implementierende Methode nicht null ist, gilt Folgendes:

  • Wenn expression.Type dem Argumenttyp der implementierenden Methode zugeordnet werden kann, ist der Knoten nicht transformiert. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die folgenden beiden Bedingungen erfüllt werden, ist der Knoten transformiert und weist einen Typ auf, der NULL-Werte zulässt und dem Rückgabetyp der implementierenden Methode entspricht:

    • expression.Type ist ein Werttyp, der NULL-Werte zulässt, und der entsprechende Werttyp, der keine NULL-Werte zulässt, entspricht dem Argumenttyp der implementierenden Methode.

    • Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der keine NULL-Werte zulässt.

Wenn die implementierende Methode gleich null ist, ist der Typ des Knotens gleich expression.Type. Wenn expression.Type keine NULL-Werte zulässt, ist der Knoten nicht transformiert. Andernfalls ist der Knoten transformiert.

Im folgenden Beispiel wird veranschaulicht, wie ein Ausdruck, der eine arithmetische Negationsoperation darstellt, erstellt wird.


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



.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft