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.Equal (Expression, Expression, Boolean, MethodInfo)

 

Data di pubblicazione: ottobre 2016

Crea un oggetto BinaryExpression che rappresenta un confronto di uguaglianza. Il metodo di implementazione può essere specificato.

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

public static BinaryExpression Equal(
	Expression left,
	Expression right,
	bool liftToNull,
	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.

liftToNull
Type: System.Boolean

true per impostare IsLiftedToNull su true; false per impostare IsLiftedToNull su false.

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 Equal e le cui proprietà Left, Right, IsLiftedToNull 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 l'operatore di uguaglianza non è definito per left. Tipo e right. Tipo.

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 è true e IsLiftedToNull proprietà è uguale a liftToNull. In caso contrario, sono entrambi false. 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.

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

  • In caso contrario, 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; Inoltre, il tipo del nodo è nullable Boolean Se liftToNull è true o Boolean Se liftToNull è false:

    • 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 è Boolean.

Se il metodo di implementazione è null:

  • Se left. Tipo e right. Type sono entrambi non nullable, il nodo non è elevato. Il tipo del nodo è Boolean.

  • Se left. Tipo e right. Type sono entrambi nullable, il nodo è elevato. Il tipo del nodo è nullable Boolean Se liftToNull è true o Boolean Se liftToNull è false.

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: