Expression.Not Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een UnaryExpression die een bitsgewijze complementbewerking vertegenwoordigt.
Overloads
| Name | Description |
|---|---|
| Not(Expression) |
Hiermee maakt u een UnaryExpression die een bitsgewijze complementbewerking vertegenwoordigt. |
| Not(Expression, MethodInfo) |
Hiermee maakt u een UnaryExpression die een bitsgewijze complementbewerking vertegenwoordigt. De implementatiemethode kan worden opgegeven. |
Not(Expression)
Hiermee maakt u een UnaryExpression die een bitsgewijze complementbewerking vertegenwoordigt.
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
Parameters
- expression
- Expression
Een Expression om de Operand eigenschap in te stellen die gelijk is aan.
Retouren
Een UnaryExpression met de NodeType eigenschap die gelijk is aan Not en de Operand eigenschap is ingesteld op de opgegeven waarde.
Uitzonderingen
expression is null.
De unary not operator is niet gedefinieerd voor expression. Type.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een expressie maakt die een logische NOT-bewerking vertegenwoordigt.
// 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
Opmerkingen
De Method eigenschap van het resultaat UnaryExpression wordt ingesteld op de implementatiemethode. De Type eigenschap is ingesteld op het type knooppunt. Als het knooppunt wordt opgeheven, zijn de IsLifted en IsLiftedToNull eigenschappen beide true. Anders zijn ze false.
Implementatiemethode
De volgende regels bepalen de implementatiemethode voor de bewerking:
Als
expression. Het type is een door de gebruiker gedefinieerd type dat de unaire not-operator definieert, de MethodInfo operator die de implementatiemethode is.Anders, als
expression. Het type is een numeriek of Booleaans type, de implementatiemethode isnull.
Type knooppunt en opgeheven versus niet-opgeheven
Als de implementatiemethode niet null is:
Als
expression. Het type kan worden toegewezen aan het argumenttype van de implementatiemethode. Het knooppunt wordt niet opgeheven. Het type van het knooppunt is het retourtype van de implementatiemethode.Als aan de volgende twee voorwaarden wordt voldaan, wordt het knooppunt opgeheven en is het type van het knooppunt het type null dat overeenkomt met het retourtype van de implementatiemethode:
expression. Het type is een waardetype dat null kan worden gebruikt en het bijbehorende niet-null-type is gelijk aan het argumenttype van de implementatiemethode.Het retourtype van de implementatiemethode is een niet-null-waardetype.
Als de implementatiemethode is null, is expressionhet type van het knooppunt. Type. Als expression. Het type kan niet null zijn, het knooppunt wordt niet opgeheven. Anders wordt het knooppunt opgeheven.
Van toepassing op
Not(Expression, MethodInfo)
Hiermee maakt u een UnaryExpression die een bitsgewijze complementbewerking vertegenwoordigt. De implementatiemethode kan worden opgegeven.
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
Parameters
- expression
- Expression
Een Expression om de Operand eigenschap in te stellen die gelijk is aan.
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
Retouren
Een UnaryExpression met de NodeType eigenschap gelijk aan Not en de Operand eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
expression is null.
method is niet null en de methode die deze vertegenwoordigt, retourneert void, is niet static (Shared in Visual Basic) of neemt niet precies één argument.
method is null en de unary not operator is niet gedefinieerd voor expression. Type.
– of –
expression. Het type (of het bijbehorende niet-null-type als het een type null-waarde is) kan niet worden toegewezen aan het argumenttype van de methode die wordt vertegenwoordigd door method.
Opmerkingen
De Method eigenschap van het resultaat UnaryExpression wordt ingesteld op de implementatiemethode. De Type eigenschap is ingesteld op het type knooppunt. Als het knooppunt wordt opgeheven, zijn de IsLifted en IsLiftedToNull eigenschappen beide true. Anders zijn ze false.
Implementatiemethode
De volgende regels bepalen de implementatiemethode voor de bewerking:
Als
methodniet isnullen deze een niet-ongeldigestatic(Sharedin Visual Basic) vertegenwoordigt, is dit de implementatiemethode voor het knooppunt.Als
expression. Het type is een door de gebruiker gedefinieerd type dat de unaire not-operator definieert, de MethodInfo operator die de implementatiemethode is.Anders, als
expression. Het type is een numeriek type, de implementatiemethode isnull.
Type knooppunt en opgeheven versus niet-opgeheven
Als de implementatiemethode niet null is:
Als
expression. Het type kan worden toegewezen aan het argumenttype van de implementatiemethode. Het knooppunt wordt niet opgeheven. Het type van het knooppunt is het retourtype van de implementatiemethode.Als aan de volgende twee voorwaarden wordt voldaan, wordt het knooppunt opgeheven en is het type van het knooppunt het type null dat overeenkomt met het retourtype van de implementatiemethode:
expression. Het type is een type null-waarde en het bijbehorende niet-null-waardetype is gelijk aan het argumenttype van de implementatiemethode.Het retourtype van de implementatiemethode is een niet-null-waardetype.
Als de implementatiemethode is null, is expressionhet type van het knooppunt. Type. Als expression. Het type kan niet null zijn, het knooppunt wordt niet opgeheven. Anders wordt het knooppunt opgeheven.