Expression.And 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 AND bit per bit.
Overload
| And(Expression, Expression) |
Crea un oggetto BinaryExpression che rappresenta un'operazione |
| And(Expression, Expression, MethodInfo) |
Crea un oggetto BinaryExpression che rappresenta un'operazione |
And(Expression, Expression)
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
Crea un oggetto BinaryExpression che rappresenta un'operazione AND bit per bit.
public:
static System::Linq::Expressions::BinaryExpression ^ And(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression And (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member And : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function And (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 And e le cui proprietà Left e Right sono impostate sui valori specificati.
Eccezioni
left o right è null.
L'operatore AND bit per bit non è definito per left.Type e right.Type.
Esempio
Nell'esempio di codice seguente viene illustrato come creare un'espressione che rappresenta un'operazione AND logica su due valori booleani.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression perfroms a logical AND operation
// on its two arguments. Both arguments must be of the same type,
// which can be boolean or integer.
Expression andExpr = Expression.And(
Expression.Constant(true),
Expression.Constant(false)
);
// Print out the expression.
Console.WriteLine(andExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<bool>>(andExpr).Compile()());
// This code example produces the following output:
//
// (True And False)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression performs a logical AND operation
' on its two arguments. Both arguments must be of the same type,
' which can be Boolean or integer.
Dim andExpr As Expression = Expression.And(
Expression.Constant(True),
Expression.Constant(False)
)
' Print the expression.
Console.WriteLine(andExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
Expression.Lambda(Of Func(Of Boolean))(andExpr).Compile()())
' This code example produces the following output:
'
' (True And False)
' False
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 proprietà Conversion è null.
Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e l'accuratezza di un nodo.
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 perANDbit, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.In caso contrario, se
left. Digitare eright. Il tipo sono tipi integrali o booleani, il metodo di implementazione ènull.
Tipo di nodo e lifting rispetto a non lifted
Se il metodo di implementazione non nullè :
Se
left. Digitare eright. Il tipo è assegnabile ai tipi di argomento corrispondenti del metodo di implementazione, il nodo non viene sollevato. 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 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 bit perANDbit 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 bit perANDbit predefinito.
Si applica a
And(Expression, Expression, MethodInfo)
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
Crea un oggetto BinaryExpression che rappresenta un'operazione AND bit per bit. Il metodo di implementazione può essere specificato.
public:
static System::Linq::Expressions::BinaryExpression ^ And(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression And (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression And (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member And : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function And (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 And 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 bit per bit AND non è definito per i tipi left.Type e right.Type.
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 proprietà Conversion è null.
Le informazioni seguenti descrivono il metodo di implementazione, il tipo di nodo e l'accuratezza di un nodo.
Metodo di implementazione
Il metodo di implementazione per l'operazione viene scelto in base alle regole seguenti:
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 perANDbit, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.In caso contrario, se
left. Digitare eright. Il tipo sono tipi integrali o booleani, il metodo di implementazione ènull.
Tipo di nodo e lifting rispetto a non lifted
Se il metodo di implementazione non nullè :
Se
left. Digitare eright. Il tipo è assegnabile ai tipi di argomento corrispondenti del metodo di implementazione, il nodo non viene sollevato. 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 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 bit perANDbit 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 bit perANDbit predefinito.