Expression.OrElse Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto BinaryExpression che rappresenta un'operazione condizionale OR che valuta il secondo operando solo se il primo operatore restituisce false.
Overload
| Nome | Descrizione |
|---|---|
| OrElse(Expression, Expression) |
Crea un oggetto BinaryExpression che rappresenta un'operazione condizionale |
| OrElse(Expression, Expression, MethodInfo) |
Crea un oggetto BinaryExpression che rappresenta un'operazione condizionale |
OrElse(Expression, Expression)
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
Crea un oggetto BinaryExpression che rappresenta un'operazione condizionale OR che valuta il secondo operando solo se il primo operando restituisce 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
Parametri
- left
- Expression
Oggetto Expression su cui impostare la Left proprietà uguale.
- right
- Expression
Oggetto Expression su cui impostare la Right proprietà uguale.
Restituisce
Oggetto BinaryExpression con la NodeType proprietà uguale a OrElse e le Left proprietà e Right impostate sui valori specificati.
Eccezioni
left o right è null.
L'operatore bit per OR bit non è definito per left. Digitare e right. Digitare.
oppure
left. Digitare e right. Il tipo non è lo stesso tipo booleano.
Esempio
Nell'esempio di codice seguente viene illustrato come creare un'espressione che rappresenta un'operazione logica OR che valuta il secondo operando solo se il primo operando restituisce 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
Commenti
La proprietà risultante BinaryExpression è Method impostata sul metodo di implementazione. La Type proprietà è impostata sul tipo del nodo. Se il nodo viene sollevato, le IsLifted proprietà e IsLiftedToNull sono entrambe true. In caso contrario, sono false. La Conversion proprietà è null.
Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e se un nodo è sollevato.
Metodo di implementazione
Le regole seguenti determinano il metodo di implementazione per l'operazione:
Se la Type proprietà di
leftorightrappresenta un tipo definito dall'utente che esegue l'overload dell'operatore bit perORbit, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.Annotazioni
L'operatore condizionale
ORnon può essere sottoposto a overload in C# o Visual Basic. Tuttavia, l'operatore condizionaleORviene valutato usando l'operatore bit perORbit. Pertanto, un overload definito dall'utente dell'operatore bit perORbit può essere il metodo di implementazione per questo tipo di nodo.In caso contrario, se
left. Digitare eright. Il tipo sono tipi booleani, il metodo di implementazione ènull.
Tipo di nodo e lifting rispetto a non lifted
Se il metodo di implementazione non è null:
Se
left.Tipo eright.Tipo sono assegnabili ai tipi di argomento corrispondenti del metodo di implementazione, il nodo non viene alzato. Il tipo del nodo è il tipo restituito del metodo di implementazione.Se vengono soddisfatte le due condizioni seguenti, il nodo viene sollevato e il tipo del nodo è il tipo nullable che corrisponde al tipo restituito del metodo di implementazione:
left. Digitare eright. Il tipo è entrambi tipi valore di cui almeno uno è nullable e i tipi non nullable corrispondenti sono uguali ai tipi di argomento corrispondenti del metodo di implementazione.Il tipo restituito del metodo di implementazione è un tipo valore non annullabile.
Se il metodo di implementazione è null:
left. Digitare eright. Il tipo è lo stesso tipo booleano.Se
left. Digitare eright. Il tipo non è nullable, il nodo non viene sollevato. Il tipo di nodo è il tipo di risultato dell'operatore condizionaleORpredefinito.Se
left. Digitare eright. Il tipo è nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore condizionaleORpredefinito.
Si applica a
OrElse(Expression, Expression, MethodInfo)
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
Crea un oggetto BinaryExpression che rappresenta un'operazione condizionale OR che valuta il secondo operando solo se il primo operando restituisce 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
Parametri
- left
- Expression
Oggetto Expression su cui impostare la Left proprietà uguale.
- right
- Expression
Oggetto Expression su cui impostare la Right proprietà uguale.
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la Method proprietà uguale.
Restituisce
Oggetto BinaryExpression con la NodeType proprietà uguale a OrElse e le Leftproprietà , Righte Method impostate sui valori specificati.
Eccezioni
left o right è null.
method non null è e il metodo che rappresenta restituisce void, non static è (Shared in Visual Basic) o non accetta esattamente due argomenti.
method è null e l'operatore bit per OR bit non è definito per left. Digitare e right. Digitare.
oppure
method è null e left. Digitare e right. Il tipo non è lo stesso tipo booleano.
Commenti
La proprietà risultante BinaryExpression è Method impostata sul metodo di implementazione. La Type proprietà è impostata sul tipo del nodo. Se il nodo viene sollevato, le IsLifted proprietà e IsLiftedToNull sono entrambe true. In caso contrario, sono false. La Conversion proprietà è null.
Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e se un nodo è sollevato.
Metodo di implementazione
Le regole seguenti determinano il metodo di implementazione per l'operazione:
Se
methodnonnullè e rappresenta un metodo non void,static(Sharedin Visual Basic) che accetta due argomenti, è il metodo di implementazione per il nodo.In caso contrario, se la Type proprietà di
leftorightrappresenta un tipo definito dall'utente che esegue l'overload dell'operatore bit perORbit, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.Annotazioni
L'operatore condizionale
ORnon può essere sottoposto a overload in C# o Visual Basic. Tuttavia, l'operatore condizionaleORviene valutato usando l'operatore bit perORbit. Pertanto, un overload definito dall'utente dell'operatore bit perORbit può essere il metodo di implementazione per questo tipo di nodo.In caso contrario, se
left. Digitare eright. Il tipo sono tipi booleani, il metodo di implementazione ènull.
Tipo di nodo e lifting rispetto a non lifted
Se il metodo di implementazione non è null:
Se
left.Tipo eright.Tipo sono assegnabili ai tipi di argomento corrispondenti del metodo di implementazione, il nodo non viene alzato. Il tipo del nodo è il tipo restituito del metodo di implementazione.Se vengono soddisfatte le due condizioni seguenti, il nodo viene sollevato e il tipo del nodo è il tipo nullable che corrisponde al tipo restituito del metodo di implementazione:
left. Digitare eright. Il tipo è entrambi tipi valore di cui almeno uno è nullable e i tipi non nullable corrispondenti sono uguali ai tipi di argomento corrispondenti del metodo di implementazione.Il tipo restituito del metodo di implementazione è un tipo valore non annullabile.
Se il metodo di implementazione è null:
left. Digitare eright. Il tipo è lo stesso tipo booleano.Se
left. Digitare eright. Il tipo non è nullable, il nodo non viene sollevato. Il tipo di nodo è il tipo di risultato dell'operatore condizionaleORpredefinito.Se
left. Digitare eright. Il tipo è nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore condizionaleORpredefinito.