Expression.Not Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un objeto UnaryExpression que representa una operación de complemento bit a bit.
Sobrecargas
Not(Expression) |
Crea un objeto UnaryExpression que representa una operación de complemento bit a bit. |
Not(Expression, MethodInfo) |
Crea un objeto UnaryExpression que representa una operación de complemento bit a bit. Se puede especificar el método de implementación. |
Not(Expression)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crea un objeto UnaryExpression que representa una operación de complemento bit a bit.
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
Parámetros
- expression
- Expression
Objeto Expression en el que se va a establecer la propiedad Operand.
Devoluciones
UnaryExpression cuya propiedad NodeType es Not y cuya propiedad Operand se establece en el valor especificado.
Excepciones
expression
es null
.
No hay ningún operador unario Not definido para expression
.Type.
Ejemplos
En el ejemplo siguiente se muestra cómo crear una expresión que representa una operación NOT lógica.
// 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
Comentarios
La Method propiedad del resultante UnaryExpression se establece en el método de implementación. La Type propiedad se establece en el tipo del nodo. Si se levanta el nodo, las IsLifted propiedades y IsLiftedToNull son true
. De lo contrario, son false
.
Método de implementación
Las reglas siguientes determinan el método de implementación para la operación:
Si
expression
. El tipo es un tipo definido por el usuario que define el operador unario not, que MethodInfo representa ese operador es el método de implementación.De lo contrario, si
expression
es . El tipo es un tipo numérico o booleano, el método de implementación esnull
.
Tipo de nodo y Elevación frente a No elevado
Si el método de implementación no null
es :
Si
expression
. El tipo se puede asignar al tipo de argumento del método de implementación, el nodo no se levanta. El tipo del nodo es el tipo de valor devuelto del método de implementación.Si se cumplen las dos condiciones siguientes, el nodo se levanta y el tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de valor devuelto del método de implementación:
expression
. El tipo es un tipo de valor que acepta valores NULL y el tipo que no acepta valores NULL correspondiente es igual al tipo de argumento del método de implementación.El tipo de valor devuelto del método de implementación es un tipo de valor que no acepta valores NULL.
Si el método de implementación es null
, el tipo del nodo es expression
. Tipo. Si expression
. El tipo no acepta valores NULL, el nodo no se levanta. De lo contrario, se levanta el nodo.
Se aplica a
Not(Expression, MethodInfo)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crea un objeto UnaryExpression que representa una operación de complemento bit a bit. Se puede especificar el método de implementación.
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
Parámetros
- expression
- Expression
Objeto Expression en el que se va a establecer la propiedad Operand.
- method
- MethodInfo
MethodInfo en el que se va a establecer la propiedad Method.
Devoluciones
UnaryExpression cuya propiedad NodeType es Not y cuyas propiedades Operand y Method se establecen en los valores especificados.
Excepciones
expression
es null
.
method
no es null
y el método que representa devuelve void
, no es static
(Shared
en Visual Basic) o no toma exactamente un argumento.
method
es null
y no hay ningún operador unario Not definido para expression
.Type.
o bien
expression
.Type (o su correspondiente tipo que no acepta valores null si se trata de un tipo de valor que acepta valores null) no puede asignarse al tipo de argumento del método representado por method
.
Comentarios
La Method propiedad del resultante UnaryExpression se establece en el método de implementación. La Type propiedad se establece en el tipo del nodo. Si se levanta el nodo, las IsLifted propiedades y IsLiftedToNull son true
. De lo contrario, son false
.
Método de implementación
Las reglas siguientes determinan el método de implementación para la operación:
Si
method
no es y representa un método que nonull
es void,static
(Shared
en Visual Basic) que toma un argumento, es el método de implementación para el nodo.Si
expression
. El tipo es un tipo definido por el usuario que define el operador unario not, que MethodInfo representa ese operador es el método de implementación.De lo contrario, si
expression
es . El tipo es un tipo numérico, el método de implementación esnull
.
Tipo de nodo y Elevación frente a No elevado
Si el método de implementación no null
es :
Si
expression
. El tipo se puede asignar al tipo de argumento del método de implementación, el nodo no se levanta. El tipo del nodo es el tipo de valor devuelto del método de implementación.Si se cumplen las dos condiciones siguientes, el nodo se levanta y el tipo del nodo es el tipo que acepta valores NULL que corresponde al tipo de valor devuelto del método de implementación:
expression
. El tipo es un tipo de valor que acepta valores NULL y el tipo de valor que no acepta valores NULL correspondiente es igual al tipo de argumento del método de implementación.El tipo de valor devuelto del método de implementación es un tipo de valor que no acepta valores NULL.
Si el método de implementación es null
, el tipo del nodo es expression
. Tipo. Si expression
. El tipo no acepta valores NULL, el nodo no se levanta. De lo contrario, se levanta el nodo.