Expression.Not Metod

Definition

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 är null.

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 method inte är null och den representerar en icke-void- static-metod (Shared i 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 är null.

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.

Gäller för