Freigeben über


Expression.OrElse Methode

Definition

Erstellt einen BinaryExpression , der einen bedingten OR Vorgang darstellt, der den zweiten Operanden nur auswertet, wenn der erste Operator ausgewertet wird false.

Überlädt

Name Beschreibung
OrElse(Expression, Expression)

Erstellt einen BinaryExpression , der einen bedingten OR Vorgang darstellt, der den zweiten Operanden nur auswertet, wenn der erste Operand ausgewertet wird false.

OrElse(Expression, Expression, MethodInfo)

Erstellt einen BinaryExpression , der einen bedingten OR Vorgang darstellt, der den zweiten Operanden nur auswertet, wenn der erste Operand ausgewertet wird false.

OrElse(Expression, Expression)

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

Erstellt einen BinaryExpression , der einen bedingten OR Vorgang darstellt, der den zweiten Operanden nur auswertet, wenn der erste Operand ausgewertet wird false.

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

Parameter

left
Expression

Eine Expression , die die Left Eigenschaft gleich festlegen soll.

right
Expression

Eine Expression , die die Right Eigenschaft gleich festlegen soll.

Gibt zurück

A BinaryExpression that has the NodeType property equal to OrElse and the LeftRight properties set to the specified values.

Ausnahmen

left oder right ist null.

Der Bitweise-Operator OR ist nicht für left. Typ und right. Typ.

- oder -

left. Typ und right. Typ ist nicht derselbe boolesche Typ.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie einen Ausdruck erstellen, der einen logischen OR Vorgang darstellt, der den zweiten Operanden nur auswertet, wenn der erste Operand ausgewertet wird false.

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

// This expression perfroms a logical OR operation
// on its two arguments, but if the first argument is true,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression orElseExpr = Expression.OrElse(
    Expression.Constant(false),
    Expression.Constant(true)
);

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

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

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

' This expression perfroms a logical OR operation
' on its two arguments, but if the first argument is true,
' the second arument is not evaluated.
' Both arguments must be of the Boolean type.
Dim orElseExpr As Expression = Expression.OrElse(
     Expression.Constant(False),
     Expression.Constant(True)
 )

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

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

' This code example produces the following output:
'
' (False OrElse True)
' True

Hinweise

Das Ergebnis BinaryExpression hat die Method Eigenschaft 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. Die Conversion Eigenschaft ist null.

Die folgenden Informationen beschreiben die Implementierungsmethode, 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 eines left oder right eines benutzerdefinierten Typs darstellt, der den bitweisen OR Operator überlastet, ist dies MethodInfo die Implementierungsmethode.

    Hinweis

    Der bedingte OR Operator kann in C# oder Visual Basic nicht überladen werden. Der bedingte OR Operator wird jedoch mithilfe des bitweisen OR Operators ausgewertet. Daher kann eine benutzerdefinierte Überladung des bitweisen OR Operators die Implementierungsmethode für diesen Knotentyp sein.

  • Andernfalls, wenn left. Typ und right. Typ sind boolesche Typen, die Implementierungsmethode lautet null.

Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen

Wenn die Implementierungsmethode nicht nullist:

  • Wenn left.Typ und right.Typ den entsprechenden Argumenttypen der Implementierungsmethode zugewiesen werden können, wird der Knoten nicht angehoben. 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:

    • left. Typ und right. Typ sind beide Werttypen, von denen mindestens ein Nullwert zulässig ist, und die entsprechenden nicht nullablen Typen entsprechen den entsprechenden Argumenttypen der implementierenden Methode.

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

Wenn die Implementierungsmethode lautet null:

  • left. Typ und right. Typ sind derselbe boolesche Typ.

  • Wenn left. Typ und right. Der Typ kann nicht null sein, der Knoten wird nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten bedingten OR Operators.

  • Wenn left. Typ und right. Der Typ kann null sein, der Knoten wird aufgehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten bedingten OR Operators entspricht.

Gilt für:

OrElse(Expression, Expression, MethodInfo)

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

Erstellt einen BinaryExpression , der einen bedingten OR Vorgang darstellt, der den zweiten Operanden nur auswertet, wenn der erste Operand ausgewertet wird false.

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

Parameter

left
Expression

Eine Expression , die die Left Eigenschaft gleich festlegen soll.

right
Expression

Eine Expression , die die Right Eigenschaft gleich festlegen soll.

method
MethodInfo

A MethodInfo , um die Method Eigenschaft gleich festzulegen.

Gibt zurück

Ein BinaryExpression Wert, der die NodeType Eigenschaft entsprichtOrElse, und Method die Eigenschaften, die LeftRightauf die angegebenen Werte festgelegt sind.

Ausnahmen

left oder right ist null.

method ist nicht null und die methode, die sie darstellt void, ist nicht static (Shared in Visual Basic) oder verwendet nicht genau zwei Argumente.

method ist null und der bitweise OR Operator nicht für left. Typ und right. Typ.

- oder -

method ist null und left. Typ und right. Typ ist nicht derselbe boolesche Typ.

Hinweise

Das Ergebnis BinaryExpression hat die Method Eigenschaft 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. Die Conversion Eigenschaft ist null.

Die folgenden Informationen beschreiben die Implementierungsmethode, den Knotentyp und ob ein Knoten aufgehoben wird.

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 zwei Argumente akzeptiert, ist es die Implementierungsmethode für den Knoten.

  • Andernfalls ist die Type Eigenschaft eines left benutzerdefinierten right Typs, der den bitweisen OR Operator überlastet, der MethodInfo diese Methode darstellt, die Implementierungsmethode.

    Hinweis

    Der bedingte OR Operator kann in C# oder Visual Basic nicht überladen werden. Der bedingte OR Operator wird jedoch mithilfe des bitweisen OR Operators ausgewertet. Daher kann eine benutzerdefinierte Überladung des bitweisen OR Operators die Implementierungsmethode für diesen Knotentyp sein.

  • Andernfalls, wenn left. Typ und right. Typ sind boolesche Typen, die Implementierungsmethode lautet null.

Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen

Wenn die Implementierungsmethode nicht nullist:

  • Wenn left.Typ und right.Typ den entsprechenden Argumenttypen der Implementierungsmethode zugewiesen werden können, wird der Knoten nicht angehoben. 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:

    • left. Typ und right. Typ sind beide Werttypen, von denen mindestens ein Nullwert zulässig ist, und die entsprechenden nicht nullablen Typen entsprechen den entsprechenden Argumenttypen der implementierenden Methode.

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

Wenn die Implementierungsmethode lautet null:

  • left. Typ und right. Typ sind derselbe boolesche Typ.

  • Wenn left. Typ und right. Der Typ kann nicht null sein, der Knoten wird nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten bedingten OR Operators.

  • Wenn left. Typ und right. Der Typ kann null sein, der Knoten wird aufgehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten bedingten OR Operators entspricht.

Gilt für: