Freigeben über


Expression.Equal Methode

Definition

Erstellt eine BinaryExpression, die einen Gleichheitsvergleich darstellt.

Überlädt

Equal(Expression, Expression)

Erstellt eine BinaryExpression, die einen Gleichheitsvergleich darstellt.

Equal(Expression, Expression, Boolean, MethodInfo)

Erstellt eine BinaryExpression, die einen Gleichheitsvergleich darstellt. Die implementierende Methode kann angegeben werden.

Equal(Expression, Expression)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

Erstellt eine BinaryExpression, die einen Gleichheitsvergleich darstellt.

public:
 static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression) As BinaryExpression

Parameter

left
Expression

Ein Expression, auf den die Left-Eigenschaft festgelegt werden soll.

right
Expression

Ein Expression, auf den die Right-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein BinaryExpression, bei dem die NodeType-Eigenschaft gleich Equal ist und die Left-Eigenschaft sowie die Right-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

left oder right ist null.

Der Gleichheitsoperator ist für left.Type und right.Type nicht definiert.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie einen Ausdruck erstellen, der überprüft, ob die Werte der beiden Argumente gleich sind.

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression compares the values of its two arguments.
// Both arguments need to be of the same type.
Expression equalExpr = Expression.Equal(
    Expression.Constant(42),
    Expression.Constant(45)
);

// Print out the expression.
Console.WriteLine(equalExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda<Func<bool>>(equalExpr).Compile()());

// This code example produces the following output:
//
// (42 == 45)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression compares the values of its two arguments.
' Both arguments must be of the same type.
Dim equalExpr As Expression = Expression.Equal(
    Expression.Constant(42),
    Expression.Constant(45)
)

' Print the expression.
Console.WriteLine(equalExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda(Of Func(Of Boolean))(equalExpr).Compile()())

' This code example produces the following output:
'
' (42 == 45)
' False

Hinweise

Das resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft ist auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, ist truedie IsLifted -Eigenschaft . Andernfalls lautet der Wert false. Die IsLiftedToNull -Eigenschaft ist immer false. Die folgenden Informationen beschreiben die implementierenden Methode, den Knotentyp und ob ein Knoten aufgehoben wird.

Implementieren der Methode

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

  • Wenn die Type Eigenschaft von oder leftright einen benutzerdefinierten Typ darstellt, der den Gleichheitsoperator überlädt, ist die methode, die MethodInfo diese Methode darstellt, die implementierende Methode.

  • Andernfalls ist nulldie implementierenden Methode .

Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"

Wenn die implementierenden Methode nicht nulllautet:

  • Wenn left. Geben Sie und ein right. Typ können den entsprechenden Argumenttypen der implementierenden Methode zugewiesen werden, der Knoten wird nicht aufgehoben. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten angehoben, und der Typ des Knotens lautet Boolean:

    • left. Geben Sie und ein right. Typ sind beide Werttypen, von denen mindestens einer nullable ist, und die entsprechenden Nicht-Nullable-Typen sind gleich den entsprechenden Argumenttypen der implementierenden Methode.

    • Der Rückgabetyp der implementierenden Methode ist Boolean.

Wenn die implementierenden Methode lautet null:

  • Wenn left. Geben Sie und ein right. Typ sind beide nicht nullable, der Knoten wird nicht angehoben. Der Typ des Knotens ist Boolean.

  • Wenn left. Geben Sie und ein right. Typ sind beide nullable, der Knoten wird aufgehoben. Der Typ des Knotens ist Boolean.

Gilt für:

Equal(Expression, Expression, Boolean, MethodInfo)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

Erstellt eine BinaryExpression, die einen Gleichheitsvergleich darstellt. Die implementierende Methode kann angegeben werden.

public:
 static System::Linq::Expressions::BinaryExpression ^ Equal(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, bool liftToNull, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Equal (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo? method);
static member Equal : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * bool * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Equal (left As Expression, right As Expression, liftToNull As Boolean, method As MethodInfo) As BinaryExpression

Parameter

left
Expression

Ein Expression, auf den die Left-Eigenschaft festgelegt werden soll.

right
Expression

Ein Expression, auf den die Right-Eigenschaft festgelegt werden soll.

liftToNull
Boolean

true, um IsLiftedToNull auf true festzulegen, und false, um IsLiftedToNull auf false festzulegen.

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.

Gibt zurück

Eine BinaryExpression, bei der die NodeType-Eigenschaft gleich Equal ist und die Eigenschaften Left, Right, IsLiftedToNull und Method auf die angegebenen Werte festgelegt sind.

Ausnahmen

left oder right ist null.

method ist nicht null, und die dargestellte Methode gibt void zurück, ist nicht static (Shared in Visual Basic) oder akzeptiert nicht genau zwei Argumente.

method ist null, und der Gleichheitsoperator ist für left.Type und right.Type nicht definiert.

Hinweise

Das resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft ist auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, ist die IsLifted -Eigenschaft und die IsLiftedToNull -Eigenschaft gleich liftToNull.true Andernfalls sind sie beide false. Die folgenden Informationen beschreiben die implementierenden Methode, den Knotentyp und ob ein Knoten aufgehoben wird.

Implementieren der Methode

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

  • Wenn method dies nicht null der Wert ist und eine nicht leere (Sharedin Visual Basic)-Methode darstellt, static die zwei Argumente akzeptiert, handelt es sich um die implementierende Methode.

  • Wenn andernfalls die Type Eigenschaft von oder rightleft einen benutzerdefinierten Typ darstellt, der den Gleichheitsoperator überlädt, ist die methode, die MethodInfo diese Methode darstellt, die implementierende Methode.

  • Andernfalls ist nulldie implementierenden Methode .

Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"

Wenn die implementierenden Methode nicht nulllautet:

  • Wenn left. Geben Sie und ein right. Typ können den entsprechenden Argumenttypen der implementierenden Methode zugewiesen werden, der Knoten wird nicht aufgehoben. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten aufgehoben. Außerdem ist der Typ des Knotens nullable Boolean , wenn liftToNulltrue oder BooleanliftToNull ist false:

    • left. Geben Sie und ein right. Typ sind beide Werttypen, von denen mindestens einer nullable ist, und die entsprechenden Nicht-Nullable-Typen sind gleich den entsprechenden Argumenttypen der implementierenden Methode.

    • Der Rückgabetyp der implementierenden Methode ist Boolean.

Wenn die implementierenden Methode lautet null:

  • Wenn left. Geben Sie und ein right. Typ sind beide nicht nullable, der Knoten wird nicht angehoben. Der Typ des Knotens ist Boolean.

  • Wenn left. Geben Sie und ein right. Typ sind beide nullable, der Knoten wird aufgehoben. Der Typ des Knotens ist nullableBoolean, wenn trueliftToNull oder Boolean ist liftToNullfalse.

Gilt für: