Expression.Not Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает UnaryExpression, представляющий побитовую операцию дополнения.
Перегрузки
Not(Expression) |
Создает UnaryExpression, представляющий побитовую операцию дополнения. |
Not(Expression, MethodInfo) |
Создает UnaryExpression, представляющий побитовую операцию дополнения. Может быть указан метод реализации. |
Not(Expression)
- Исходный код:
- UnaryExpression.cs
- Исходный код:
- UnaryExpression.cs
- Исходный код:
- UnaryExpression.cs
Создает UnaryExpression, представляющий побитовую операцию дополнения.
public:
static System::Linq::Expressions::UnaryExpression ^ Not(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression Not (System.Linq.Expressions.Expression expression);
static member Not : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function Not (expression As Expression) As UnaryExpression
Параметры
- expression
- Expression
Объект Expression, который следует задать в качестве значения свойства Operand.
Возвращаемое значение
Выражение UnaryExpression со свойством NodeType, равным Not, и свойством Operand, для которого задано указанное значение.
Исключения
expression
имеет значение null
.
Унарный оператор Not не определен для типа expression
.Type.
Примеры
В следующем примере показано, как создать выражение, представляющее логическую операцию NOT.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a NOT operation.
Expression notExpr = Expression.Not(Expression.Constant(true));
Console.WriteLine(notExpr);
// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda<Func<bool>>(notExpr).Compile()());
// This code example produces the following output:
//
// Not(True)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a NOT operation.
Dim notExpr As Expression = Expression.Not(Expression.Constant(True))
Console.WriteLine(notExpr)
' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(notExpr).Compile()())
' This code example produces the following output:
'
' Not(True)
' False
Комментарии
Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Свойству Type присваивается тип узла. Если узел приподнят, IsLifted свойства и IsLiftedToNull имеют значение true
. В противном случае они имеют значение false
.
Метод реализации
Следующие правила определяют метод реализации операции:
Если
expression
. Тип — это определяемый пользователем тип, определяющий унарный оператор not. MethodInfo Объект , представляющий этот оператор, является реализующим методом.В противном случае , если
expression
. Тип является числовым или логическим типом, реализующий метод —null
.
Тип узла, а также тип невозвыводимый и невозвыводимый
Если реализующим методом не null
является :
Если
expression
. Тип можно назначить типу аргумента реализующего метода, при этом узел не поднимается. Тип узла является типом возвращаемого значения реализующего метода.Если выполняются следующие два условия, узел поднимается, а тип узла является типом, допускающим значение NULL, который соответствует типу возвращаемого значения реализующего метода:
expression
. Тип является типом значения, допускающим значение NULL, и соответствующий тип, не допускающий значения NULL, равен типу аргумента реализующего метода.Тип возвращаемого значения реализующего метода является типом значения, не допускающим значение NULL.
Если реализующим методом является null
, тип узла — expression
. Тип. Если expression
. Тип не допускает значения NULL, узел не поднимается. В противном случае узел приподнимается.
Применяется к
Not(Expression, MethodInfo)
- Исходный код:
- UnaryExpression.cs
- Исходный код:
- UnaryExpression.cs
- Исходный код:
- UnaryExpression.cs
Создает UnaryExpression, представляющий побитовую операцию дополнения. Может быть указан метод реализации.
public:
static System::Linq::Expressions::UnaryExpression ^ Not(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Not (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Not (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo? method);
static member Not : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Not (expression As Expression, method As MethodInfo) As UnaryExpression
Параметры
- expression
- Expression
Объект Expression, который следует задать в качестве значения свойства Operand.
- method
- MethodInfo
Объект MethodInfo, который следует задать в качестве значения свойства Method.
Возвращаемое значение
Выражение UnaryExpression со свойствомNodeType, равным Not, и свойствами Operand и Method, для которых заданы указанные значения.
Исключения
expression
имеет значение null
.
Значение параметра method
не равно null
, и метод, который представляется этим параметром, возвращает значение void
, не является static
(Shared
в Visual Basic) и не принимает ровно один аргумент.
method
равно null
, а унарный оператор Not не определен для типа expression
.Type.
-или-
Тип expression
.Type (или соответствующий тип, не поддерживающий значение null, если он является типом, поддерживающим значение null) не назначается типу аргумента метода, представленного method
.
Комментарии
Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Свойству Type присваивается тип узла. Если узел приподнят, IsLifted свойства и IsLiftedToNull имеют значение true
. В противном случае они имеют значение false
.
Метод реализации
Следующие правила определяют метод реализации операции:
Если
method
параметр неnull
имеет и представляет метод non-void (static
Shared
в Visual Basic), который принимает один аргумент, он является реализующим методом для узла.Если
expression
. Тип — это определяемый пользователем тип, определяющий унарный оператор not. MethodInfo Объект , представляющий этот оператор, является реализующим методом.В противном случае , если
expression
. Тип — это числовой тип, реализующий метод —null
.
Тип узла, а также тип невозвыводимый и невозвыводимый
Если реализующим методом не null
является :
Если
expression
. Тип можно назначить типу аргумента реализующего метода, при этом узел не поднимается. Тип узла является типом возвращаемого значения реализующего метода.Если выполняются следующие два условия, узел поднимается, а тип узла является типом, допускающим значение NULL, который соответствует типу возвращаемого значения реализующего метода:
expression
. Тип является типом значения, допускающим значение NULL, и соответствующий тип значения, не допускающий значения NULL, равен типу аргумента реализующего метода.Тип возвращаемого значения реализующего метода является типом значения, не допускающим значение NULL.
Если реализующим методом является null
, тип узла — expression
. Тип. Если expression
. Тип не допускает значения NULL, узел не поднимается. В противном случае узел приподнимается.