Expression.OrElse Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy element reprezentujący operację BinaryExpression warunkową OR
, która oblicza drugi operand tylko wtedy, gdy pierwszy operator oblicza wartość false
.
Przeciążenia
OrElse(Expression, Expression) |
Tworzy element reprezentujący operację BinaryExpression warunkową |
OrElse(Expression, Expression, MethodInfo) |
Tworzy element reprezentujący operację BinaryExpression warunkową |
OrElse(Expression, Expression)
- Źródło:
- BinaryExpression.cs
- Źródło:
- BinaryExpression.cs
- Źródło:
- BinaryExpression.cs
Tworzy element reprezentujący operację BinaryExpression warunkową OR
, która oblicza drugi operand tylko wtedy, gdy pierwszy operand oblicza false
wartość .
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
Parametry
- left
- Expression
Element , Expression aby ustawić właściwość równą Left .
- right
- Expression
Element , Expression aby ustawić właściwość równą Right .
Zwraca
WłaściwośćBinaryExpression, która ma właściwość równą OrElseNodeType właściwości i i RightLeft ustawioną na określone wartości.
Wyjątki
left
lub right
to null
.
Operator bitowy OR
nie jest zdefiniowany dla left
elementu . Wpisz i right
. Typu.
-lub-
left
. Wpisz i right
. Typ nie jest tym samym typem logicznym.
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć wyrażenie reprezentujące operację logiczną OR
, która oblicza drugi operand tylko wtedy, gdy pierwszy operand oblicza false
wartość .
// 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
Uwagi
BinaryExpression Wynik ma właściwość ustawioną Method na metodę implementowania. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie zniesiony, IsLifted właściwości i IsLiftedToNull są oba true
. W przeciwnym razie są to false
. Właściwość Conversion to null
.
Poniższe informacje opisują metodę implementowania, typ węzła i to, czy węzeł został zniesiony.
Metoda implementująca
Następujące reguły określają metodę implementowania operacji:
Type Jeśli właściwość typu
left
lubright
reprezentuje typ zdefiniowany przez użytkownika, który przeciąża operator bitowyOR
, oznacza to, MethodInfo że metoda jest metodą implementowania.Uwaga
Operator warunkowy
OR
nie może być przeciążony w języku C# lub Visual Basic. Operator warunkowyOR
jest jednak oceniany przy użyciu operatora bitowegoOR
. W związku z tym przeciążenie zdefiniowane przez użytkownika operatora bitowegoOR
może być metodą implementowania dla tego typu węzła.W przeciwnym razie, jeśli
left
. Wpisz iright
. Typ to typy logiczne, metoda implementowania tonull
.
Typ węzła oraz węzły podniesione i niepodniesione
Jeśli metoda implementowania nie null
jest :
Jeśli
left
. Wpisz iright
. Typ można przypisać do odpowiednich typów argumentów metody implementowania, węzeł nie jest zniesiony. Typ węzła to zwracany typ metody implementowania.Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła to typ dopuszczający wartość null odpowiadający typowi zwracanej metody implementowania:
left
. Wpisz iright
. Typ to oba typy wartości, z których co najmniej jeden ma wartość null, a odpowiadające im typy niepuste są równe odpowiadającym typom argumentów metody implementowania.Zwracany typ metody implementowania jest typem wartości bez wartości null.
Jeśli metoda implementowania to null
:
left
. Wpisz iright
. Typ to ten sam typ logiczny.Jeśli
left
. Wpisz iright
. Typ jest niepusty, węzeł nie jest zniesiony. Typ węzła jest typem wyniku wstępnie zdefiniowanego operatora warunkowegoOR
.Jeśli
left
. Wpisz iright
. Typ ma wartość null, węzeł zostanie zniesiony. Typ węzła to typ dopuszczający wartość null odpowiadający typowi wyniku wstępnie zdefiniowanego operatora warunkowegoOR
.
Dotyczy
OrElse(Expression, Expression, MethodInfo)
- Źródło:
- BinaryExpression.cs
- Źródło:
- BinaryExpression.cs
- Źródło:
- BinaryExpression.cs
Tworzy element reprezentujący operację BinaryExpression warunkową OR
, która oblicza drugi operand tylko wtedy, gdy pierwszy operand oblicza false
wartość .
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
Parametry
- left
- Expression
Element , Expression aby ustawić właściwość równą Left .
- right
- Expression
Element , Expression aby ustawić właściwość równą Right .
- method
- MethodInfo
A MethodInfo , aby ustawić właściwość równą Method .
Zwraca
WłaściwośćBinaryExpression, która ma właściwość równą OrElseNodeType wartościom , i LeftRight, i Method ustawioną na określone wartości.
Wyjątki
left
lub right
to null
.
method
nie null
jest i metoda, która reprezentuje zwraca void
wartość , nie static
jest (Shared
w Visual Basic) lub nie bierze dokładnie dwóch argumentów.
method
jest null
i operator bitowy OR
nie jest zdefiniowany dla left
elementu . Wpisz i right
. Typu.
-lub-
method
to i null
left
. Wpisz i right
. Typ nie jest tym samym typem logicznym.
Uwagi
BinaryExpression Wynik ma właściwość ustawioną Method na metodę implementowania. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie zniesiony, IsLifted właściwości i IsLiftedToNull są oba true
. W przeciwnym razie są to false
. Właściwość Conversion to null
.
Poniższe informacje opisują metodę implementowania, typ węzła i to, czy węzeł został zniesiony.
Metoda implementująca
Następujące reguły określają metodę implementowania operacji:
Jeśli
method
nienull
jest i reprezentuje metodę niepustą ( w Visual Basic), która przyjmuje dwa argumenty,static
Shared
jest to metoda implementowania węzła.W przeciwnym razie, jeśli Type właściwość lub
left
right
reprezentuje typ zdefiniowany przez użytkownika, który przeciąża operator bitowyOR
, oznacza to, MethodInfo że metoda jest metodą implementowania.Uwaga
Operator warunkowy
OR
nie może być przeciążony w języku C# lub Visual Basic. Operator warunkowyOR
jest jednak oceniany przy użyciu operatora bitowegoOR
. W związku z tym przeciążenie zdefiniowane przez użytkownika operatora bitowegoOR
może być metodą implementowania dla tego typu węzła.W przeciwnym razie, jeśli
left
. Wpisz iright
. Typ to typy logiczne, metoda implementowania tonull
.
Typ węzła oraz węzły podniesione i niepodniesione
Jeśli metoda implementowania nie null
jest :
Jeśli
left
. Wpisz iright
. Typ można przypisać do odpowiednich typów argumentów metody implementowania, węzeł nie jest zniesiony. Typ węzła to zwracany typ metody implementowania.Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła to typ dopuszczający wartość null odpowiadający typowi zwracanej metody implementowania:
left
. Wpisz iright
. Typ to oba typy wartości, z których co najmniej jeden ma wartość null, a odpowiadające im typy niepuste są równe odpowiadającym typom argumentów metody implementowania.Zwracany typ metody implementowania jest typem wartości bez wartości null.
Jeśli metoda implementowania to null
:
left
. Wpisz iright
. Typ to ten sam typ logiczny.Jeśli
left
. Wpisz iright
. Typ jest niepusty, węzeł nie jest zniesiony. Typ węzła jest typem wyniku wstępnie zdefiniowanego operatora warunkowegoOR
.Jeśli
left
. Wpisz iright
. Typ ma wartość null, węzeł zostanie zniesiony. Typ węzła to typ dopuszczający wartość null odpowiadający typowi wyniku wstępnie zdefiniowanego operatora warunkowegoOR
.