Expression.LeftShift 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 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
oright
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 eright
. 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 eright
. 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 eright
. 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 eright
. 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
nonnull
è 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
oright
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 eright
. 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 eright
. 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 eright
. 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 eright
. 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.