Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Expression.OrElse (Expression, Expression, MethodInfo)

 

Data di pubblicazione: ottobre 2016

Crea un oggetto BinaryExpression che rappresenta un'operazione OR condizionale che valuta il secondo operando solo se il primo operando restituisce false.

Spazio dei nomi:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static BinaryExpression OrElse(
	Expression left,
	Expression right,
	MethodInfo method
)

Parametri

left
Type: System.Linq.Expressions.Expression

Oggetto Expression su cui impostare la proprietà Left.

right
Type: System.Linq.Expressions.Expression

Oggetto Expression su cui impostare la proprietà Right.

method
Type: System.Reflection.MethodInfo

Oggetto MethodInfo su cui impostare la proprietà Method.

Valore restituito

Type: System.Linq.Expressions.BinaryExpression

Oggetto BinaryExpression la cui proprietà NodeType è uguale a OrElse e le cui proprietà Left, Right e Method sono impostate sui valori specificati.

Exception Condition
ArgumentNullException

left o right è null.

ArgumentException

method non è null e il metodo che rappresenta restituisce void, non è static (Shared in Visual Basic), o non accetta esattamente due argomenti.

InvalidOperationException

method è null e bit per bit OR operatore non è definito per left. Tipo e right. Tipo.

-oppure-

method è null e left. Tipo e right. Tipo non sono dello stesso tipo Boolean.

L'oggetto risultante BinaryExpression ha il Method impostata per il metodo di implementazione. Il Type proprietà è impostata per il tipo del nodo. Se il nodo è elevato, il IsLifted e IsLiftedToNull siano entrambe true. In caso contrario, sono false. Il Conversionè null.

Di seguito viene descritto il metodo di implementazione, il tipo di nodo, e se un nodo è elevato.

Le regole seguenti determinano il metodo di implementazione per l'operazione:

  • Se method non null e rappresenta un diverso da void, static (Shared in Visual Basic) metodo che accetta due argomenti, è il metodo di implementazione per il nodo.

  • In caso contrario, se il Type proprietà di left o right rappresenta un tipo definito dall'utente che esegue l'overload di bit per bit OR operatore, la MethodInfo che rappresenta tale metodo è il metodo di implementazione.

    System_CAPS_noteNota

    Condizionale OR operatore non può essere sottoposto a overload in c# o Visual Basic. Tuttavia, condizionale OR operatore viene valutato utilizzando bit per bit OR operatore. Pertanto, un overload definito dall'utente di bit per bit OR operatore può essere il metodo di implementazione per questo tipo di nodo.

  • In caso contrario, se left. Tipo e right. Tipo sono tipi Boolean, il metodo di implementazione è null.

Se il metodo di implementazione non null:

  • Se left. Tipo e right. Tipo possano essere assegnati ai corrispondenti tipi di argomento del metodo di implementazione, il nodo non è elevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.

  • Se vengono soddisfatte le due condizioni seguenti, il nodo è elevato e il tipo del nodo è di tipo nullable che corrisponde al tipo restituito del metodo di implementazione:

    • left. Tipo e right. Tipo sono entrambi tipi di valore di cui almeno uno è nullable e i tipi non nullable corrispondenti sono uguali ai corrispondenti tipi di argomento del metodo di implementazione.

    • Il tipo restituito del metodo di implementazione è un tipo di valore non nullable.

Se il metodo di implementazione è null:

  • left. Tipo e right. Tipo sono dello stesso tipo Boolean.

  • Se left. Tipo e right. Type sono non nullable, il nodo non è elevato. Il tipo del nodo è il tipo di risultato di condizionale predefinito OR operatore.

  • Se left. Tipo e right. Type sono nullable, il nodo è elevato. Il tipo del nodo è di tipo nullable che corrisponde al tipo di risultato di condizionale predefinito OR operatore.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: