Expression.OrElse Metoda

Definicja

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ą OR , która oblicza drugi operand tylko wtedy, gdy pierwszy operand oblicza falsewartość .

OrElse(Expression, Expression, MethodInfo)

Tworzy element reprezentujący operację BinaryExpression warunkową OR , która oblicza drugi operand tylko wtedy, gdy pierwszy operand oblicza falsewartość .

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 falsewartość .

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 leftelementu . 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 falsewartość .

// 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 lub 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 warunkowy OR jest jednak oceniany przy użyciu operatora bitowego OR . W związku z tym przeciążenie zdefiniowane przez użytkownika operatora bitowego OR może być metodą implementowania dla tego typu węzła.

  • W przeciwnym razie, jeśli left. Wpisz i right. Typ to typy logiczne, metoda implementowania to null.

Typ węzła oraz węzły podniesione i niepodniesione

Jeśli metoda implementowania nie nulljest :

  • Jeśli left. Wpisz i right. 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 i right. 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 i right. Typ to ten sam typ logiczny.

  • Jeśli left. Wpisz i right. Typ jest niepusty, węzeł nie jest zniesiony. Typ węzła jest typem wyniku wstępnie zdefiniowanego operatora warunkowego OR .

  • Jeśli left. Wpisz i right. 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 warunkowego OR .

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 falsewartość .

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 voidwartość , 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 leftelementu . Wpisz i right. Typu.

-lub-

method to i nullleft. 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 nie null jest i reprezentuje metodę niepustą ( w Visual Basic), która przyjmuje dwa argumenty, staticShared jest to metoda implementowania węzła.

  • W przeciwnym razie, jeśli Type właściwość lub leftright reprezentuje typ zdefiniowany przez użytkownika, który przeciąża operator bitowy OR , 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 warunkowy OR jest jednak oceniany przy użyciu operatora bitowego OR . W związku z tym przeciążenie zdefiniowane przez użytkownika operatora bitowego OR może być metodą implementowania dla tego typu węzła.

  • W przeciwnym razie, jeśli left. Wpisz i right. Typ to typy logiczne, metoda implementowania to null.

Typ węzła oraz węzły podniesione i niepodniesione

Jeśli metoda implementowania nie nulljest :

  • Jeśli left. Wpisz i right. 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 i right. 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 i right. Typ to ten sam typ logiczny.

  • Jeśli left. Wpisz i right. Typ jest niepusty, węzeł nie jest zniesiony. Typ węzła jest typem wyniku wstępnie zdefiniowanego operatora warunkowego OR .

  • Jeśli left. Wpisz i right. 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 warunkowego OR .

Dotyczy