Freigeben über


Expression.Not Methode

Definition

Erstellt eine UnaryExpression , die einen bitweisen Ergänzungsvorgang darstellt.

Überlädt

Name Beschreibung
Not(Expression)

Erstellt eine UnaryExpression , die einen bitweisen Ergänzungsvorgang darstellt.

Not(Expression, MethodInfo)

Erstellt eine UnaryExpression , die einen bitweisen Ergänzungsvorgang darstellt. Die Implementierungsmethode kann angegeben werden.

Not(Expression)

Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs

Erstellt eine UnaryExpression , die einen bitweisen Ergänzungsvorgang darstellt.

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

Parameter

expression
Expression

Eine Expression , die die Operand Eigenschaft gleich festlegen soll.

Gibt zurück

A UnaryExpression that has the NodeType property equal to Not and the Operand property set to the specified value.

Ausnahmen

expression ist null.

Der Nicht-Notenoperator ist nicht für expression. Typ.

Beispiele

Im folgenden Beispiel wird das Erstellen eines Ausdrucks veranschaulicht, der einen logischen NOT-Vorgang darstellt.

// 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

Hinweise

Die Method Eigenschaft des Resultierenden UnaryExpression wird auf die Implementierungsmethode festgelegt. Die Type Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die Eigenschaften IsLifted und IsLiftedToNull beide true. Andernfalls sind sie false.

Implementieren der Methode

Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:

  • Wenn expression. Der Typ ist ein benutzerdefinierter Typ, der den unären Notenoperator definiert, der MethodInfo diesen Operator darstellt, der die Implementierungsmethode darstellt.

  • Andernfalls, wenn expression. Der Typ ist ein numerischer oder boolescher Typ, die Implementierungsmethode lautet null.

Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen

Wenn die Implementierungsmethode nicht nullist:

  • Wenn expression. Der Typ kann dem Argumenttyp der Implementierungsmethode zugewiesen werden, der Knoten wird nicht aufgehoben. Der Typ des Knotens ist der Rückgabetyp der Implementierungsmethode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten aufgehoben, und der Typ des Knotens ist der nullable Typ, der dem Rückgabetyp der Implementierungsmethode entspricht:

    • expression. Der Typ ist ein Nullwerttyp, und der entsprechende nicht nullable Typ ist gleich dem Argumenttyp der Implementierungsmethode.

    • Der Rückgabetyp der Implementierungsmethode ist ein nicht nullwertbarer Werttyp.

Wenn die Implementierungsmethode lautet null, lautet expressionder Typ des Knotens . Typ. Wenn expression. Der Typ ist nicht nullfähig, der Knoten wird nicht aufgehoben. Andernfalls wird der Knoten aufgehoben.

Gilt für:

Not(Expression, MethodInfo)

Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs

Erstellt eine UnaryExpression , die einen bitweisen Ergänzungsvorgang darstellt. Die Implementierungsmethode kann angegeben werden.

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

Parameter

expression
Expression

Eine Expression , die die Operand Eigenschaft gleich festlegen soll.

method
MethodInfo

A MethodInfo , um die Method Eigenschaft gleich festzulegen.

Gibt zurück

A UnaryExpression that has the NodeType property equal to Not and the OperandMethod properties set to the specified values.

Ausnahmen

expression ist null.

method ist nicht null und die Methode, die sie darstellt void, ist nicht static (Shared in Visual Basic) oder verwendet nicht genau ein Argument.

method ist null und der unäre Notenoperator nicht für expression. Typ.

- oder -

expression. Der Typ (oder der entsprechende nicht nullable Typ, wenn es sich um einen Nullwerttyp handelt) kann nicht dem Argumenttyp der von methodder Methode dargestellten Methode zugewiesen werden.

Hinweise

Die Method Eigenschaft des Resultierenden UnaryExpression wird auf die Implementierungsmethode festgelegt. Die Type Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die Eigenschaften IsLifted und IsLiftedToNull beide true. Andernfalls sind sie false.

Implementieren der Methode

Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:

  • Wenn method nicht null und stellt eine nicht leere (Shared in Visual Basic) -Methode dar, static die ein Argument akzeptiert, ist es die Implementierungsmethode für den Knoten.

  • Wenn expression. Der Typ ist ein benutzerdefinierter Typ, der den unären Notenoperator definiert, der MethodInfo diesen Operator darstellt, der die Implementierungsmethode darstellt.

  • Andernfalls, wenn expression. Der Typ ist ein numerischer Typ, die Implementierungsmethode lautet null.

Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen

Wenn die Implementierungsmethode nicht nullist:

  • Wenn expression. Der Typ kann dem Argumenttyp der Implementierungsmethode zugewiesen werden, der Knoten wird nicht aufgehoben. Der Typ des Knotens ist der Rückgabetyp der Implementierungsmethode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten aufgehoben, und der Typ des Knotens ist der nullable Typ, der dem Rückgabetyp der Implementierungsmethode entspricht:

    • expression. Der Typ ist ein Nullwerttyp, und der entsprechende nicht nullable Werttyp ist gleich dem Argumenttyp der implementierenden Methode.

    • Der Rückgabetyp der Implementierungsmethode ist ein nicht nullwertbarer Werttyp.

Wenn die Implementierungsmethode lautet null, lautet expressionder Typ des Knotens . Typ. Wenn expression. Der Typ ist nicht nullfähig, der Knoten wird nicht aufgehoben. Andernfalls wird der Knoten aufgehoben.

Gilt für: