Sdílet prostřednictvím


Expression.Negate Metoda

Definice

Vytvoří operaci UnaryExpression aritmetické negace.

Přetížení

Name Description
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
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

Operand Nastavení Expression vlastnosti rovno.

method
MethodInfo

A MethodInfo nastavit Method vlastnost rovná se.

Návraty

AUnaryExpression, který má vlastnost rovna NegateNodeType a Operand a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

expression je null.

method není null a metoda, která představuje vrací void, není static (Shared v jazyce Visual Basic) nebo nebere přesně jeden argument.

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

nebo

expression. Typ (nebo odpovídající typ bez hodnoty null, pokud se jedná o typ hodnoty null) není možné přiřadit k typu argumentu metody reprezentované metodou 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 a IsLiftedToNull vlastnosti jsou obě true. Jinak jsou nepravdivé.

Implementace metody

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

  • Pokud method není null a představuje non-void, static (Shared v jazyce Visual Basic), která přebírá jeden argument, je to implementace metody pro uzel.

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

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

Typ uzlu a zvednutí versus neschycený typ uzlu

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 implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel je zvednut a typ uzlu je typ s možnou hodnotou null, který odpovídá návratu typu implementované metody:

    • expression. Typ je typ hodnoty nullable a odpovídající typ hodnoty non-nullable je roven typu argumentu implementované metody.

    • Návratový typ implementované metody je nenulový typ hodnoty.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ není nullable, uzel není zvednut. Jinak se uzel zvedne.

Platí pro

Negate(Expression)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
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

Operand Nastavení Expression vlastnosti rovno.

Návraty

AUnaryExpression, který má vlastnost rovna NegateNodeType a Operand vlastnost nastavena na zadanou hodnotu.

Výjimky

expression je null.

Operátor unární minus není definován pro expression. Typ.

Příklady

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

// 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 a IsLiftedToNull vlastnosti jsou obě true. Jinak 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í minus operátor, MethodInfo který představuje tento operátor je implementovaná metoda.

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

Typ uzlu a zvednutí versus neschycený typ uzlu

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 implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel je zvednut a typ uzlu je typ s možnou hodnotou null, který odpovídá návratu typu implementované metody:

    • expression. Typ je typ hodnoty nullable a odpovídající typ hodnoty non-nullable je roven typu argumentu implementované metody.

    • Návratový typ implementované metody je nenulový typ hodnoty.

Pokud je nullimplementovaná metoda , typ uzlu je expression. Typ. Pokud expression. Typ není nullable, uzel není zvednut. Jinak se uzel zvedne.

Platí pro