Expression.Or Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine BinaryExpression, die einen bitweisen OR
-Vorgang darstellt.
Überlädt
Or(Expression, Expression) |
Erstellt eine BinaryExpression, die einen bitweisen |
Or(Expression, Expression, MethodInfo) |
Erstellt eine BinaryExpression, die einen bitweisen |
Or(Expression, Expression)
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
Erstellt eine BinaryExpression, die einen bitweisen OR
-Vorgang darstellt.
public:
static System::Linq::Expressions::BinaryExpression ^ Or(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Or (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Or : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Or (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 Or ist und die Left-Eigenschaft sowie die Right-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
left
oder right
ist null
.
Der bitweise OR
-Operator ist für left
.Type und right
.Type nicht definiert.
Beispiele
Das folgende Codebeispiel zeigt, wie sie einen Ausdruck erstellen, der einen logischen OR-Vorgang darstellt.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression perfroms a logical OR operation
// on its two arguments. Both arguments must be of the same type,
// which can be boolean or integer.
Expression orExpr = Expression.Or(
Expression.Constant(true),
Expression.Constant(false)
);
// Print out the expression.
Console.WriteLine(orExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<bool>>(orExpr).Compile()());
// This code example produces the following output:
//
// (True Or False)
// True
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression perfroms a logical OR operation
' on its two arguments. Both arguments must be of the same type,
' which can be Boolean or integer.
Dim orExpr As Expression = Expression.Or(
Expression.Constant(True),
Expression.Constant(False)
)
' Print the expression.
Console.WriteLine(orExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(orExpr).Compile()())
' This code example produces the following output:
'
' (True Or False)
' True
Hinweise
Die resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die IsLifted Eigenschaften und IsLiftedToNull beide true
. Andernfalls sind false
sie . Die Conversion-Eigenschaft ist null
.
Die folgenden Informationen beschreiben die Implementierenden Methode, den Knotentyp und ob ein Knoten angehoben wird.
Implementieren der Methode
Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:
Wenn die Type -Eigenschaft von
left
oderright
einen benutzerdefinierten Typ darstellt, der den bitweisenOR
Operator überlädt, ist der , der MethodInfo diese Methode darstellt, die implementierende Methode.Andernfalls, wenn
left
. Geben Sie und einright
. Typ sind integrale oder boolesche Typen, die implementierenden Methode istnull
.
Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"
Wenn die implementierenden Methode nicht null
lautet:
Wenn
left
. Geben Sie und einright
. Der Typ kann den entsprechenden Argumenttypen der implementierenden Methode zugewiesen werden, der Knoten wird nicht angehoben. 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 ist der Nullable-Typ, der dem Rückgabetyp der implementierenden Methode entspricht:
left
. Geben Sie und einright
. Typ sind beide Werttypen, von denen mindestens einer null-wertefähig ist, und die entsprechenden Typen, die keine Nullwerte zulassen, gleich den entsprechenden Argumenttypen der implementierenden Methode sind.Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der nicht nullable ist.
Wenn die implementierenden Methode lautet null
:
Wenn
left
. Geben Sie und einright
. Der Typ kann nicht null sein, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten bitweisenOR
Operators.Wenn
left
. Geben Sie und einright
. Der Typ kann null zulassen, und der Knoten wird angehoben. Der Typ des Knotens ist der Nullable-Typ, der dem Ergebnistyp des vordefinierten bitweisenOR
Operators entspricht.
Gilt für:
Or(Expression, Expression, MethodInfo)
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
Erstellt eine BinaryExpression, die einen bitweisen OR
-Vorgang darstellt.
public:
static System::Linq::Expressions::BinaryExpression ^ Or(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Or (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Or (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member Or : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Or (left As Expression, right As Expression, 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.
- method
- MethodInfo
Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.
Gibt zurück
Ein BinaryExpression, bei dem die NodeType-Eigenschaft gleich Or ist und die Eigenschaften Left, Right 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 bitweise OR
-Operator ist für left
.Type und right
.Type nicht definiert.
Hinweise
Die resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die IsLifted Eigenschaften und IsLiftedToNull beide true
. Andernfalls sind false
sie . Die Conversion-Eigenschaft ist null
.
Die folgenden Informationen beschreiben die Implementierenden Methode, den Knotentyp und ob ein Knoten angehoben wird.
Implementieren der Methode
Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:
Wenn
method
nichtnull
ist und eine nicht leere Methode (Shared
in Visual Basic) darstellt,static
die zwei Argumente akzeptiert, handelt es sich um die implementierende Methode.Wenn andernfalls
left
die Type -Eigenschaft von oderright
einen benutzerdefinierten Typ darstellt, der den bitweisenOR
Operator überlädt, ist der , der MethodInfo diese Methode darstellt, die implementierende Methode.Andernfalls, wenn
left
. Geben Sie und einright
. Typ sind integrale oder boolesche Typen, die implementierenden Methode istnull
.
Knotentyp und "Lifted" im Vergleich zu "Non-Lifted"
Wenn die implementierenden Methode nicht null
lautet:
Wenn
left
. Geben Sie und einright
. Der Typ kann den entsprechenden Argumenttypen der implementierenden Methode zugewiesen werden, der Knoten wird nicht angehoben. 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 ist der Nullable-Typ, der dem Rückgabetyp der implementierenden Methode entspricht:
left
. Geben Sie und einright
. Typ sind beide Werttypen, von denen mindestens einer null-wertefähig ist, und die entsprechenden Typen, die keine Nullwerte zulassen, gleich den entsprechenden Argumenttypen der implementierenden Methode sind.Der Rückgabetyp der implementierenden Methode ist ein Werttyp, der nicht nullable ist.
Wenn die implementierenden Methode lautet null
:
Wenn
left
. Geben Sie und einright
. Der Typ kann nicht null sein, der Knoten wird nicht angehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten bitweisenOR
Operators.Wenn
left
. Geben Sie und einright
. Der Typ kann null zulassen, und der Knoten wird angehoben. Der Typ des Knotens ist der Nullable-Typ, der dem Ergebnistyp des vordefinierten bitweisenOR
Operators entspricht.