Expression.LeftShift Metodo

Definizione

Crea un oggetto BinaryExpression che rappresenta un'operazione di spostamento a sinistra bit per bit.

Overload

LeftShift(Expression, Expression)

Crea un oggetto BinaryExpression che rappresenta un'operazione di spostamento a sinistra bit per bit.

LeftShift(Expression, Expression, MethodInfo)

Crea un oggetto BinaryExpression che rappresenta un'operazione di spostamento a sinistra bit per bit.

LeftShift(Expression, Expression)

Origine:
BinaryExpression.cs
Origine:
BinaryExpression.cs
Origine:
BinaryExpression.cs

Crea un oggetto BinaryExpression che rappresenta un'operazione di spostamento a sinistra bit per bit.

public:
 static System::Linq::Expressions::BinaryExpression ^ LeftShift(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression LeftShift (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member LeftShift : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function LeftShift (left As Expression, right As Expression) As BinaryExpression

Parametri

left
Expression

Oggetto Expression su cui impostare la proprietà Left.

right
Expression

Oggetto Expression su cui impostare la proprietà Right.

Restituisce

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

Eccezioni

left o right è null.

L'operatore di spostamento a sinistra non è definito per left.Type e right.Type.

Commenti

Il risultato BinaryExpression ha la Method proprietà 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 proprietà Conversion è null.

Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e se un nodo viene sollevato.

Metodo di implementazione

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

  • Se la Type proprietà di left o right rappresenta un tipo definito dall'utente che esegue l'overload dell'operatore left-shift, che MethodInfo rappresenta tale metodo è il metodo di implementazione.

  • In caso contrario, se left. Il tipo è un tipo integrale (uno di Byte, Int16UInt32SByteInt32Int64UInt16UInt64o i tipi nullable corrispondenti) e .right Il tipo è , il metodo di implementazione è Int32null.

Tipo di nodo e lifting rispetto a non sollevato

Se il metodo di implementazione non nullè :

  • Se left. Digitare e right. Il tipo è assegnabile ai tipi di argomenti corrispondenti del metodo di implementazione, il nodo non viene sollevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.

  • Se sono 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 e right. Il tipo è entrambi i tipi di 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 di valore non nullable.

Se il metodo di implementazione è null:

  • Se left. Digitare e right. Il tipo non è nullable, il nodo non viene sollevato. Il tipo del nodo è il tipo di risultato dell'operatore a sinistra predefinito.

  • Se left. Digitare e right. Il tipo è entrambi nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore left-shift predefinito.

Si applica a

LeftShift(Expression, Expression, MethodInfo)

Origine:
BinaryExpression.cs
Origine:
BinaryExpression.cs
Origine:
BinaryExpression.cs

Crea un oggetto BinaryExpression che rappresenta un'operazione di spostamento a sinistra bit per bit.

public:
 static System::Linq::Expressions::BinaryExpression ^ LeftShift(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression LeftShift (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression LeftShift (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member LeftShift : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function LeftShift (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression

Parametri

left
Expression

Oggetto Expression su cui impostare la proprietà Left.

right
Expression

Oggetto Expression su cui impostare la proprietà Right.

method
MethodInfo

Oggetto MethodInfo su cui impostare la proprietà Method.

Restituisce

Oggetto BinaryExpression la cui proprietà NodeType è uguale a LeftShift e le cui proprietà Left, Right e Method sono 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) oppure non accetta esattamente due argomenti.

method è null e l'operatore di spostamento a sinistra non è definito per left.Type e right.Type.

Commenti

Il risultato BinaryExpression ha la Method proprietà 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 proprietà Conversion è null.

Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e se un nodo viene sollevato.

Metodo di implementazione

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

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

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

  • In caso contrario, se left. Il tipo è un tipo integrale (uno di Byte, Int16UInt32SByteInt32Int64UInt16UInt64o i tipi nullable corrispondenti) e .right Il tipo è , il metodo di implementazione è Int32null.

Tipo di nodo e lifting rispetto a non sollevato

Se il metodo di implementazione non nullè :

  • Se left. Digitare e right. Il tipo è assegnabile ai tipi di argomenti corrispondenti del metodo di implementazione, il nodo non viene sollevato. Il tipo del nodo è il tipo restituito del metodo di implementazione.

  • Se sono 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 e right. Il tipo è entrambi i tipi di 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 di valore non nullable.

Se il metodo di implementazione è null:

  • Se left. Digitare e right. Il tipo non è nullable, il nodo non viene sollevato. Il tipo del nodo è il tipo di risultato dell'operatore a sinistra predefinito.

  • Se left. Digitare e right. Il tipo è entrambi nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore left-shift predefinito.

Si applica a