Sdílet prostřednictvím


Expression.Negate Metoda

Definice

Vytvoří operaci UnaryExpression aritmetické negace.

Přetížení

Negate(Expression, MethodInfo)

Vytvoří operaci UnaryExpression aritmetické negace.

Negate(Expression)

Vytvoří operaci UnaryExpression aritmetické negace.

Negate(Expression, MethodInfo)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs

Vytvoří operaci UnaryExpression aritmetické negace.

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

Parametry

expression
Expression

An Expression , která nastaví Operand vlastnost na hodnotu rovna.

method
MethodInfo

A MethodInfo , aby se vlastnost nastavil Method na hodnotu rovna.

Návraty

Vlastnost UnaryExpression a, která má NodeType vlastnost rovna Negate a Operand vlastnosti a Method nastavené na zadané hodnoty.

Výjimky

expression je null.

method není null a metoda, která představuje, vrátí void, není static (Shared v jazyce Visual Basic) nebo nepřebírají přesně jeden argument.

method je null a unární operátor minus není definován pro expression. Typ.

-nebo-

expression. Typ (nebo jeho odpovídající typ s možnou hodnotou null, pokud se jedná o typ hodnoty s možnou hodnotou null) není možné přiřadit k typu argumentu metody reprezentované hodnotou method.

Poznámky

Vlastnost Method výsledné UnaryExpression je nastavena na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednutí, IsLifted vlastnosti a IsLiftedToNull jsou .true V opačném případě jsou nepravdivé.

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud method není null a představuje metodu bez void ( staticShared v jazyce Visual Basic), která přijímá jeden argument, je to metoda implementace pro uzel.

  • Pokud expression. Typ je uživatelem definovaný typ, který definuje unární operátor minus, MethodInfo který představuje tento operátor je implementovaná metoda.

  • V opačném případě platí, že pokud expression. Typ je číselný typ, implementovaná metoda je null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud expression. Typ je možné přiřadit k typu argumentu implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementační metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zruší a typ uzlu je typ s možnou hodnotou null, který odpovídá návratovému typu implementační metody:

    • expression. Typ je typ hodnoty s možnou hodnotou null a odpovídající typ hodnoty, který nemá hodnotu null, se rovná typu argumentu implementované metody.

    • Návratový typ implementační metody je typ hodnoty s možnou hodnotou null.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ nemá hodnotu null, uzel není zvednut. V opačném případě se uzel zruší.

Platí pro

Negate(Expression)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs

Vytvoří operaci UnaryExpression aritmetické negace.

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

Parametry

expression
Expression

An Expression , která nastaví Operand vlastnost na hodnotu rovna.

Návraty

Vlastnost UnaryExpression má rovnou NodeTypeNegate a Operand vlastnost nastavenou na zadanou hodnotu.

Výjimky

expression je null.

Unární operátor minus není definován pro expression. Typ.

Příklady

Následující příklad ukazuje, jak vytvořit výraz, který představuje aritmetickou operaci negace.

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

Poznámky

Vlastnost Method výsledné UnaryExpression je nastavena na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednutí, IsLifted vlastnosti a IsLiftedToNull jsou .true V opačném případě jsou nepravdivé.

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud expression. Typ je uživatelem definovaný typ, který definuje unární operátor minus, MethodInfo který představuje tento operátor je implementovaná metoda.

  • V opačném případě platí, že pokud expression. Typ je číselný typ, implementovaná metoda je null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud expression. Typ je možné přiřadit k typu argumentu implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementační metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zruší a typ uzlu je typ s možnou hodnotou null, který odpovídá návratovému typu implementační metody:

    • expression. Typ je typ hodnoty s možnou hodnotou null a odpovídající typ hodnoty, který nemá hodnotu null, se rovná typu argumentu implementované metody.

    • Návratový typ implementační metody je typ hodnoty s možnou hodnotou null.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ nemá hodnotu null, uzel není zvednut. V opačném případě se uzel zruší.

Platí pro