Udostępnij za pośrednictwem


Expression.Negate Metoda

Definicja

Tworzy obiekt UnaryExpression reprezentujący operację negacji arytmetycznej.

Przeciążenia

Nazwa Opis
Negate(Expression, MethodInfo)

Tworzy obiekt UnaryExpression reprezentujący operację negacji arytmetycznej.

Negate(Expression)

Tworzy obiekt UnaryExpression reprezentujący operację negacji arytmetycznej.

Negate(Expression, MethodInfo)

Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs

Tworzy obiekt UnaryExpression reprezentujący operację negacji arytmetycznej.

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

Wartość , Expression aby ustawić właściwość równą Operand .

method
MethodInfo

A MethodInfo , aby ustawić właściwość równą Method .

Zwraca

WłaściwośćUnaryExpression, która ma właściwość równą NegateNodeType i Operand właściwości i Method ustawioną na określone wartości.

Wyjątki

Parametr expression ma wartość null.

method nie null jest i metoda, która reprezentuje, zwraca voidwartość , nie static jest (Shared w Visual Basic) lub nie bierze dokładnie jednego argumentu.

method jest null i jednoargumentowy operator minus nie jest zdefiniowany dla expression. Typu.

— lub —

expression. Typ (lub odpowiadający mu typ niezwiązany z wartością null, jeśli jest to typ wartości dopuszczanej do wartości null) nie można przypisać do typu argumentu metody reprezentowanej przez methodelement .

Uwagi

Właściwość Method wynikowej UnaryExpression jest ustawiona na metodę implementowania. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie podniesiony, zarówno właściwość IsLifted, jak i właściwość IsLiftedToNulltrue. W przeciwnym razie są fałszywe.

Implementowanie metody

Następujące reguły określają metodę implementowania dla operacji:

  • Jeśli method nie null jest i reprezentuje metodę niepustą ( staticShared w Visual Basic), która przyjmuje jeden argument, jest to metoda implementowania węzła.

  • Jeśli expression. Typ jest typem zdefiniowanym przez użytkownika, który definiuje jednoargumentowy operator minus, MethodInfo który reprezentuje ten operator jest metodą implementowania.

  • W przeciwnym razie, jeśli expression. Typem jest typ liczbowy, a metoda implementowania to null.

Typ węzła i podniesiony a nieznoszony

Jeśli metoda implementacji nie jest null:

  • Jeśli expression. Typ można przypisać do typu argumentu metody implementowania, a węzeł nie zostanie zniesiony. Typ węzła to zwracany typ metody implementowania.

  • Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła jest typem dopuszczalnym wartości null odpowiadającym zwracanym typowi metody implementowania:

    • expression. Typ jest typem wartości dopuszczanej do wartości null, a odpowiadający mu typ wartości innej niż null jest równy typowi argumentu metody implementowania.

    • Typ zwracany przez metodę implementacji jest niemającym wartości null typem wartościowym.

Jeśli metoda implementowania to null, typ węzła to expression. Typu. Jeśli expression. Typ jest niepusty, węzeł nie jest podnosiny. W przeciwnym razie węzeł zostanie zniesiony.

Dotyczy

Negate(Expression)

Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs
Źródło:
UnaryExpression.cs

Tworzy obiekt UnaryExpression reprezentujący operację negacji arytmetycznej.

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

Wartość , Expression aby ustawić właściwość równą Operand .

Zwraca

WłaściwośćUnaryExpression, która ma właściwość równą NegateNodeType i Operand właściwość ustawioną na określoną wartość.

Wyjątki

Parametr expression ma wartość null.

Jednoargumentowy operator minus nie jest zdefiniowany dla elementu expression. Typu.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące operację negacji arytmetycznej.

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

Uwagi

Właściwość Method wynikowej UnaryExpression jest ustawiona na metodę implementowania. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie podniesiony, zarówno właściwość IsLifted, jak i właściwość IsLiftedToNulltrue. W przeciwnym razie są fałszywe.

Implementowanie metody

Następujące reguły określają metodę implementowania dla operacji:

  • Jeśli expression. Typ jest typem zdefiniowanym przez użytkownika, który definiuje jednoargumentowy operator minus, MethodInfo który reprezentuje ten operator jest metodą implementowania.

  • W przeciwnym razie, jeśli expression. Typem jest typ liczbowy, a metoda implementowania to null.

Typ węzła i podniesiony a nieznoszony

Jeśli metoda implementacji nie jest null:

  • Jeśli expression. Typ można przypisać do typu argumentu metody implementowania, a węzeł nie zostanie zniesiony. Typ węzła to zwracany typ metody implementowania.

  • Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła jest typem dopuszczalnym wartości null odpowiadającym zwracanym typowi metody implementowania:

    • expression. Typ jest typem wartości dopuszczanej do wartości null, a odpowiadający mu typ wartości innej niż null jest równy typowi argumentu metody implementowania.

    • Typ zwracany przez metodę implementacji jest niemającym wartości null typem wartościowym.

Jeśli metoda implementowania to null, typ węzła to expression. Typu. Jeśli expression. Typ jest niepusty, węzeł nie jest podnosiny. W przeciwnym razie węzeł zostanie zniesiony.

Dotyczy