Поделиться через


Expression.Negate Метод

Определение

Создает UnaryExpression, представляющий операцию арифметического отрицания.

Перегрузки

Negate(Expression, MethodInfo)

Создает UnaryExpression, представляющий операцию арифметического отрицания.

Negate(Expression)

Создает UnaryExpression, представляющий операцию арифметического отрицания.

Negate(Expression, MethodInfo)

Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs

Создает UnaryExpression, представляющий операцию арифметического отрицания.

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

Параметры

expression
Expression

Объект Expression, который следует задать в качестве значения свойства Operand.

method
MethodInfo

Объект MethodInfo, который следует задать в качестве значения свойства Method.

Возвращаемое значение

Выражение UnaryExpression со свойствомNodeType, равным Negate, и свойствами Operand и Method, для которых заданы указанные значения.

Исключения

expression имеет значение null.

Значение параметра method не равно null, и метод, который представляется этим параметром, возвращает значение void, не является static (Shared в Visual Basic) и не принимает ровно один аргумент.

method равно null, а унарный минус-оператор не определен для типа expression.Type.

-или-

Тип expression.Type (или соответствующий тип, не поддерживающий значение null, если он является типом, поддерживающим значение null) не назначается типу аргумента метода, представленного method.

Комментарии

Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Свойству Type присваивается тип узла. Если узел приподнят, IsLifted свойства и IsLiftedToNull имеют значение true. В противном случае они имеют значение false.

Метод реализации

Следующие правила определяют метод реализации операции:

  • Если method параметр не null имеет и представляет метод non-void ( staticShared в Visual Basic), который принимает один аргумент, он является реализующим методом для узла.

  • Если expression. Тип — это определяемый пользователем тип, определяющий унарный оператор минус, MethodInfo который представляет этот оператор, является реализующим методом.

  • В противном случае , если expression. Тип — это числовой тип, реализующий метод — null.

Тип узла, а также тип невозвыводимый и невозвыводимый

Если реализующим методом не nullявляется :

  • Если expression. Тип можно назначить типу аргумента реализующего метода, при этом узел не поднимается. Тип узла является типом возвращаемого значения реализующего метода.

  • Если выполняются следующие два условия, узел поднимается, а тип узла является типом, допускающим значение NULL, который соответствует типу возвращаемого значения реализующего метода:

    • expression. Тип является типом значения, допускающим значение NULL, и соответствующий тип значения, не допускающий значения NULL, равен типу аргумента реализующего метода.

    • Тип возвращаемого значения реализующего метода является типом значения, не допускающим значение NULL.

Если реализующим методом является null, тип узла — expression. Тип. Если expression. Тип не допускает значения NULL, узел не поднимается. В противном случае узел приподнимается.

Применяется к

Negate(Expression)

Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs

Создает UnaryExpression, представляющий операцию арифметического отрицания.

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

Параметры

expression
Expression

Объект Expression, который следует задать в качестве значения свойства Operand.

Возвращаемое значение

Выражение UnaryExpression со свойством NodeType, равным Negate, и свойством Operand, для которого задано указанное значение.

Исключения

expression имеет значение null.

Унарный минус-оператор не определен для типа expression.Type.

Примеры

В следующем примере показано, как создать выражение, представляющее арифметическую операцию отрицания.

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

Комментарии

Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Свойству Type присваивается тип узла. Если узел приподнят, IsLifted свойства и IsLiftedToNull имеют значение true. В противном случае они имеют значение false.

Метод реализации

Следующие правила определяют метод реализации операции:

  • Если expression. Тип — это определяемый пользователем тип, определяющий унарный оператор минус, MethodInfo который представляет этот оператор, является реализующим методом.

  • В противном случае , если expression. Тип — это числовой тип, реализующий метод — null.

Тип узла, а также тип невозвыводимый и невозвыводимый

Если реализующим методом не nullявляется :

  • Если expression. Тип можно назначить типу аргумента реализующего метода, при этом узел не поднимается. Тип узла является типом возвращаемого значения реализующего метода.

  • Если выполняются следующие два условия, узел поднимается, а тип узла является типом, допускающим значение NULL, который соответствует типу возвращаемого значения реализующего метода:

    • expression. Тип является типом значения, допускающим значение NULL, и соответствующий тип значения, не допускающий значения NULL, равен типу аргумента реализующего метода.

    • Тип возвращаемого значения реализующего метода является типом значения, не допускающим значение NULL.

Если реализующим методом является null, тип узла — expression. Тип. Если expression. Тип не допускает значения NULL, узел не поднимается. В противном случае узел приподнимается.

Применяется к