Expression.AndAlso 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
condizionale che valuta il secondo operando solo se il primo operando restituisce true
.
Overload
AndAlso(Expression, Expression, MethodInfo) |
Crea un oggetto BinaryExpression che rappresenta un'operazione |
AndAlso(Expression, Expression) |
Crea un oggetto BinaryExpression che rappresenta un'operazione |
AndAlso(Expression, Expression, MethodInfo)
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
Crea un oggetto BinaryExpression che rappresenta un'operazione AND
condizionale che valuta il secondo operando solo se il primo operando viene risolto in true. Il metodo di implementazione può essere specificato.
public:
static System::Linq::Expressions::BinaryExpression ^ AndAlso(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression AndAlso (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression AndAlso (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member AndAlso : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function AndAlso (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 AndAlso 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.
-oppure-
method
è null
e left
.Type e right
.Type non sono dello stesso tipo Boolean.
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
method
nonnull
è e rappresenta un metodo non void,static
(Shared
in Visual Basic) che accetta due argomenti, è il metodo di implementazione per il nodo.In caso contrario, se la Type proprietà di
left
oright
rappresenta un tipo definito dall'utente che esegue l'overload dell'operatore bit perAND
bit, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.Nota
L'operatore condizionale
AND
non può essere sottoposto a overload in C# o Visual Basic. Tuttavia, l'operatore condizionaleAND
viene valutato usando l'operatore bit perAND
bit. Di conseguenza, un overload definito dall'utente dell'operatore bit perAND
bit può essere il metodo di implementazione per questo tipo di nodo.In caso contrario, se
left
. Digitare eright
. Il tipo sono tipi 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
:
left
. Digitare eright
. Il tipo è lo stesso tipo booleano.Se
left
. Digitare eright
. Il tipo non è nullable, il nodo non viene sollevato. Il tipo del nodo è il tipo di risultato dell'operatore condizionaleAND
predefinito.Se
left
. Digitare eright
. Il tipo è nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore condizionaleAND
predefinito.
Si applica a
AndAlso(Expression, Expression)
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
- Origine:
- BinaryExpression.cs
Crea un oggetto BinaryExpression che rappresenta un'operazione AND
condizionale che valuta il secondo operando solo se il primo operando restituisce true
.
public:
static System::Linq::Expressions::BinaryExpression ^ AndAlso(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression AndAlso (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member AndAlso : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function AndAlso (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 AndAlso 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.
-oppure-
left
.Type e right
.Type non sono dello stesso tipo Boolean.
Esempio
Nell'esempio di codice seguente viene illustrato come creare un'espressione che esegue un'operazione AND logica sui due operandi solo se il primo operando restituisce true
.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression perfroms a logical AND operation
// on its two arguments, but if the first argument is false,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression andAlsoExpr = Expression.AndAlso(
Expression.Constant(false),
Expression.Constant(true)
);
// Print out the expression.
Console.WriteLine(andAlsoExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<bool>>(andAlsoExpr).Compile()());
// This code example produces the following output:
//
// (False AndAlso True)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression performs a logical AND operation
' on its two arguments, but if the first argument is false,
' the second argument is not evaluated.
' Both arguments must be of the Boolean type.
Dim andAlsoExpr As Expression = Expression.AndAlso(
Expression.Constant(False),
Expression.Constant(True)
)
' Print the expression.
Console.WriteLine(andAlsoExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(andAlsoExpr).Compile()())
' This code example produces the following output:
'
' (False AndAlso True)
' 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
left
oright
rappresenta un tipo definito dall'utente che esegue l'overload dell'operatore bit perAND
bit, l'oggetto MethodInfo che rappresenta tale metodo è il metodo di implementazione.Nota
L'operatore condizionale
AND
non può essere sottoposto a overload in C# o Visual Basic. Tuttavia, l'operatore condizionaleAND
viene valutato usando l'operatore bit perAND
bit. Di conseguenza, un overload definito dall'utente dell'operatore bit perAND
bit può essere il metodo di implementazione per questo tipo di nodo.In caso contrario, se
left
. Digitare eright
. Il tipo sono tipi 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
:
left
. Digitare eright
. Il tipo è lo stesso tipo booleano.Se
left
. Digitare eright
. Il tipo non è nullable, il nodo non viene sollevato. Il tipo del nodo è il tipo di risultato dell'operatore condizionaleAND
predefinito.Se
left
. Digitare eright
. Il tipo è nullable, il nodo viene sollevato. Il tipo del nodo è il tipo nullable che corrisponde al tipo di risultato dell'operatore condizionaleAND
predefinito.