Expression.AndAlso Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en BinaryExpression som representerar en villkorsstyrd AND åtgärd som utvärderar den andra operanden endast om den första operanden utvärderas till true.
Överlagringar
| Name | Description |
|---|---|
| AndAlso(Expression, Expression, MethodInfo) |
Skapar en BinaryExpression som representerar en villkorsstyrd |
| AndAlso(Expression, Expression) |
Skapar en BinaryExpression som representerar en villkorsstyrd |
AndAlso(Expression, Expression, MethodInfo)
Skapar en BinaryExpression som representerar en villkorsstyrd AND åtgärd som utvärderar den andra operanden endast om den första operanden matchas till true. Implementeringsmetoden kan anges.
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
Parametrar
- left
- Expression
A Expression för att ange egenskapen Left lika med.
- right
- Expression
A Expression för att ange egenskapen Right lika med.
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
Returer
En BinaryExpression som har NodeType egenskapen lika med AndAlso och Leftegenskaperna , Rightoch Method som är inställda på de angivna värdena.
Undantag
left eller right är null.
method är inte null och metoden den representerar returnerar void, är inte static (Shared i Visual Basic) eller tar inte exakt två argument.
method är null och bitvisoperatorn AND har inte definierats för left. Skriv och right. Typ.
-eller-
method är null och left. Skriv och right. Typen är inte samma booleska typ.
Kommentarer
Den resulterande BinaryExpression egenskapen har Method angetts till implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false. Egenskapen Conversion är null.
Följande information beskriver implementeringsmetoden, nodtypen och om en nod lyfts.
Implementeringsmetod
Implementeringsmetoden för åtgärden väljs baserat på följande regler:
Om
methodinte ärnulloch den representerar en icke-void,static(Sharedi Visual Basic) som tar två argument, är det implementeringsmetoden för noden.Annars, om Type egenskapen för antingen
leftellerrightrepresenterar en användardefinierad typ som överbelastar bitvis-operatornAND, MethodInfo är den som representerar den metoden implementeringsmetoden.Note
Operatorn conditional
ANDkan inte överbelastas i C# eller Visual Basic. Den villkorsstyrdaANDoperatorn utvärderas dock med hjälp av bitvis-operatornAND. Därför kan en användardefinierad överbelastning av bitvisoperatornANDvara implementeringsmetoden för den här nodtypen.Annars, om
left. Skriv ochright. Typen är booleska typer, implementeringsmetoden ärnull.
Nodtyp och lyft jämfört med icke-lyft
Om implementeringsmetoden inte nullär :
Om
left.Typ ochright.Typ kan tilldelas till motsvarande argumenttyper i implementeringsmetoden, lyfts noden inte. Nodens typ är returtypen för implementeringsmetoden.Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:
left. Skriv ochright. Typ är båda värdetyper som minst en är nullbar och motsvarande icke-nullbara typer är lika med motsvarande argumenttyper för implementeringsmetoden.Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.
Om implementeringsmetoden är null:
left. Skriv ochright. Typen är samma booleska typ.Om
left. Skriv ochright. Typen kan inte vara null, noden lyfts inte. Nodens typ är resultattypen för den fördefinierade villkorsoperatornAND.Om
left. Skriv ochright. Typen är null, noden lyfts. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade villkorsoperatornAND.
Gäller för
AndAlso(Expression, Expression)
Skapar en BinaryExpression som representerar en villkorsstyrd AND åtgärd som utvärderar den andra operanden endast om den första operanden utvärderas till 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
Parametrar
- left
- Expression
A Expression för att ange egenskapen Left lika med.
- right
- Expression
A Expression för att ange egenskapen Right lika med.
Returer
En BinaryExpression som har egenskapen NodeType lika med AndAlso och Left egenskaperna och Right inställda på de angivna värdena.
Undantag
left eller right är null.
Bitvisoperatorn AND har inte definierats för left. Skriv och right. Typ.
-eller-
left. Skriv och right. Typen är inte samma booleska typ.
Exempel
I följande kodexempel visas hur du skapar ett uttryck som utför en logisk AND-åtgärd på sina två operander endast om den första operanden utvärderas till 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
Kommentarer
Den resulterande BinaryExpression egenskapen har Method angetts till implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false. Egenskapen Conversion är null.
Följande information beskriver implementeringsmetoden, nodtypen och om en nod lyfts.
Implementeringsmetod
Följande regler avgör implementeringsmetoden för åtgärden:
Type Om egenskapen för antingen
leftellerrightrepresenterar en användardefinierad typ som överbelastar bitvis-operatornANDär den som representerar den MethodInfo metoden implementeringsmetoden.Note
Operatorn conditional
ANDkan inte överbelastas i C# eller Visual Basic. Den villkorsstyrdaANDoperatorn utvärderas dock med hjälp av bitvis-operatornAND. Därför kan en användardefinierad överbelastning av bitvisoperatornANDvara implementeringsmetoden för den här nodtypen.Annars, om
left. Skriv ochright. Typen är booleska typer, implementeringsmetoden ärnull.
Nodtyp och lyft jämfört med icke-lyft
Om implementeringsmetoden inte nullär :
Om
left.Typ ochright.Typ kan tilldelas till motsvarande argumenttyper i implementeringsmetoden, lyfts noden inte. Nodens typ är returtypen för implementeringsmetoden.Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:
left. Skriv ochright. Typ är båda värdetyper som minst en är nullbar och motsvarande icke-nullbara typer är lika med motsvarande argumenttyper för implementeringsmetoden.Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.
Om implementeringsmetoden är null:
left. Skriv ochright. Typen är samma booleska typ.Om
left. Skriv ochright. Typen kan inte vara null, noden lyfts inte. Nodens typ är resultattypen för den fördefinierade villkorsoperatornAND.Om
left. Skriv ochright. Typen är null, noden lyfts. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade villkorsoperatornAND.