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 (static
Shared
в 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, узел не поднимается. В противном случае узел приподнимается.