Expression.Not Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en UnaryExpression som representerar en bitvis komplementåtgärd.
Överlagringar
| Name | Description |
|---|---|
| Not(Expression) |
Skapar en UnaryExpression som representerar en bitvis komplementåtgärd. |
| Not(Expression, MethodInfo) |
Skapar en UnaryExpression som representerar en bitvis komplementåtgärd. Implementeringsmetoden kan anges. |
Not(Expression)
Skapar en UnaryExpression som representerar en bitvis komplementåtgärd.
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
Parametrar
- expression
- Expression
En Expression som egenskapen Operand ska vara lika med.
Returer
En UnaryExpression som har egenskapen NodeType lika med Not och egenskapen Operand inställd på det angivna värdet.
Undantag
expression är null.
Operatorn unary not har inte definierats för expression. Typ.
Exempel
I följande exempel visas hur du skapar ett uttryck som representerar en logisk NOT-åtgärd.
// 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
Kommentarer
Egenskapen Method för resultatet UnaryExpression är inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false.
Implementeringsmetod
Följande regler avgör implementeringsmetoden för åtgärden:
Om
expression. Typ är en användardefinierad typ som definierar den unary not operator, som representerar den MethodInfo operatorn är implementeringsmetoden.Annars, om
expression. Typen är en numerisk eller boolesk typ, implementeringsmetoden ärnull.
Nodtyp och lyft jämfört med icke-lyft
Om implementeringsmetoden inte nullär :
Om
expression. Typen kan tilldelas till argumenttypen för implementeringsmetoden, noden lyfts inte. Nodens typ är returtypen för implementeringsmetoden.Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:
expression. Typen är en nullbar värdetyp och motsvarande typ som inte kan null-värdet är lika med argumenttypen för implementeringsmetoden.Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.
Om implementeringsmetoden är nullär expressionnodens typ . Typ. Om expression. Typen kan inte vara null, noden lyfts inte. Annars lyfts noden.
Gäller för
Not(Expression, MethodInfo)
Skapar en UnaryExpression som representerar en bitvis komplementåtgärd. Implementeringsmetoden kan anges.
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
Parametrar
- expression
- Expression
En Expression som egenskapen Operand ska vara lika med.
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
Returer
En UnaryExpression som har egenskapen NodeType lika med Not och Operand egenskaperna och Method inställda på de angivna värdena.
Undantag
expression är null.
method är inte null och metoden den representerar returnerar void, är inte static (Shared i Visual Basic), eller tar inte exakt ett argument.
method är null och operatorn unary not har inte definierats för expression. Typ.
-eller-
expression. Typen (eller motsvarande icke-nullbar typ om den är en nullbar värdetyp) kan inte tilldelas till argumenttypen för metoden som representeras av method.
Kommentarer
Egenskapen Method för resultatet UnaryExpression är inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false.
Implementeringsmetod
Följande regler avgör implementeringsmetoden för åtgärden:
Om
methodinte ärnulloch den representerar en icke-void-static-metod (Sharedi Visual Basic) som tar ett argument, är det implementeringsmetoden för noden.Om
expression. Typ är en användardefinierad typ som definierar den unary not operator, som representerar den MethodInfo operatorn är implementeringsmetoden.Annars, om
expression. Typen är en numerisk typ, implementeringsmetoden ärnull.
Nodtyp och lyft jämfört med icke-lyft
Om implementeringsmetoden inte nullär :
Om
expression. Typen kan tilldelas till argumenttypen för implementeringsmetoden, noden lyfts inte. Nodens typ är returtypen för implementeringsmetoden.Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:
expression. Typen är en nullbar värdetyp och motsvarande värdetyp som inte kan nullvärde är lika med argumenttypen för implementeringsmetoden.Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.
Om implementeringsmetoden är nullär expressionnodens typ . Typ. Om expression. Typen kan inte vara null, noden lyfts inte. Annars lyfts noden.