Expression.AndAlso Methode

Definitie

Hiermee maakt u een BinaryExpression die een voorwaardelijke AND bewerking vertegenwoordigt die de tweede operand alleen evalueert als de eerste operand dat evalueert true.

Overloads

Name Description
AndAlso(Expression, Expression, MethodInfo)

Hiermee maakt u een BinaryExpression voorwaardelijke AND bewerking die de tweede operand alleen evalueert als de eerste operand is omgezet in waar. De implementatiemethode kan worden opgegeven.

AndAlso(Expression, Expression)

Hiermee maakt u een BinaryExpression die een voorwaardelijke AND bewerking vertegenwoordigt die de tweede operand alleen evalueert als de eerste operand dat evalueert true.

AndAlso(Expression, Expression, MethodInfo)

Hiermee maakt u een BinaryExpression voorwaardelijke AND bewerking die de tweede operand alleen evalueert als de eerste operand is omgezet in waar. De implementatiemethode kan worden opgegeven.

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

Parameters

left
Expression

A Expression om de Left eigenschap in te stellen die gelijk is aan.

right
Expression

A Expression om de Right eigenschap in te stellen die gelijk is aan.

method
MethodInfo

A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.

Retouren

Een BinaryExpression met de NodeType eigenschap gelijk aan AndAlso en de Left, Righten Method eigenschappen die zijn ingesteld op de opgegeven waarden.

Uitzonderingen

left of right is null.

method is niet null en de methode die deze vertegenwoordigt, retourneert void, is niet static (Shared in Visual Basic) of neemt niet precies twee argumenten.

method is null en de bitsgewijze AND operator is niet gedefinieerd voor left. Typ en right. Type.

– of –

method is null en left. Typ en right. Het type is niet hetzelfde Booleaanse type.

Opmerkingen

De resulterende BinaryExpression eigenschap is Method ingesteld op de implementatiemethode. De Type eigenschap is ingesteld op het type knooppunt. Als het knooppunt wordt opgeheven, zijn de IsLifted en IsLiftedToNull eigenschappen beide true. Anders zijn ze false. De eigenschap Conversion is null.

De volgende informatie beschrijft de implementatiemethode, het knooppunttype en of een knooppunt wordt opgeheven.

Implementatiemethode

De implementatiemethode voor de bewerking wordt gekozen op basis van de volgende regels:

  • Als method niet is null en deze een niet-ongeldige static (Shared in Visual Basic) vertegenwoordigt, is dit de implementatiemethode voor het knooppunt.

  • Als de eigenschap van een van beide of right een door de Type gebruiker gedefinieerd type vertegenwoordigt dat de bitsgewijze AND operator overbelast, is de methode die MethodInfo de implementatiemethode vertegenwoordigt.left

    Note

    De operator voor voorwaardelijk AND kan niet worden overbelast in C# of Visual Basic. De voorwaardelijke AND operator wordt echter geëvalueerd met behulp van de bitsgewijze AND operator. Een door de gebruiker gedefinieerde overbelasting van de bitsgewijze AND operator kan dus de implementatiemethode voor dit knooppunttype zijn.

  • Anders, als left. Typ en right. Type zijn Booleaanse typen, de implementatiemethode is null.

Type knooppunt en opgeheven versus niet-opgeheven

Als de implementatiemethode niet null is:

  • Als left.Type en right.Type kunnen worden toegewezen aan de bijbehorende argumenttypen van de implementatiemethode, dan wordt het knooppunt niet opgeheven. Het type van het knooppunt is het retourtype van de implementatiemethode.

  • Als aan de volgende twee voorwaarden wordt voldaan, wordt het knooppunt opgeheven en is het type van het knooppunt het type null dat overeenkomt met het retourtype van de implementatiemethode:

    • left. Typ en right. Het type zijn beide waardetypen waarvan ten minste één null-waarde kan worden gebruikt en de bijbehorende niet-null-bare typen zijn gelijk aan de bijbehorende argumenttypen van de implementatiemethode.

    • Het retourtype van de implementatiemethode is een niet-null-waardetype.

Als de implementatiemethode het volgende is null:

  • left. Typ en right. Het type is hetzelfde Booleaanse type.

  • Als left. Typ en right. Het type kan niet null zijn, het knooppunt wordt niet opgeheven. Het type van het knooppunt is het resultaattype van de vooraf gedefinieerde voorwaardelijke AND operator.

  • Als left. Typ en right. Het type kan null worden, het knooppunt wordt opgeheven. Het type van het knooppunt is het null-type dat overeenkomt met het resultaattype van de vooraf gedefinieerde voorwaardelijke AND operator.

Van toepassing op

AndAlso(Expression, Expression)

Hiermee maakt u een BinaryExpression die een voorwaardelijke AND bewerking vertegenwoordigt die de tweede operand alleen evalueert als de eerste operand dat evalueert 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

Parameters

left
Expression

A Expression om de Left eigenschap in te stellen die gelijk is aan.

right
Expression

A Expression om de Right eigenschap in te stellen die gelijk is aan.

Retouren

Een BinaryExpression met de NodeType eigenschap gelijk aan AndAlso en de Left eigenschappen die Right zijn ingesteld op de opgegeven waarden.

Uitzonderingen

left of right is null.

De bitsgewijze AND operator is niet gedefinieerd voor left. Typ en right. Type.

– of –

left. Typ en right. Het type is niet hetzelfde Booleaanse type.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een expressie maakt waarmee een logische AND-bewerking wordt uitgevoerd op de twee operanden alleen als de eerste operand resulteert in 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

Opmerkingen

De resulterende BinaryExpression eigenschap is Method ingesteld op de implementatiemethode. De Type eigenschap is ingesteld op het type knooppunt. Als het knooppunt wordt opgeheven, zijn de IsLifted en IsLiftedToNull eigenschappen beide true. Anders zijn ze false. De eigenschap Conversion is null.

De volgende informatie beschrijft de implementatiemethode, het knooppunttype en of een knooppunt wordt opgeheven.

Implementatiemethode

De volgende regels bepalen de implementatiemethode voor de bewerking:

  • Als de Type eigenschap van een van left beide of right een door de gebruiker gedefinieerd type vertegenwoordigt dat de bitsgewijze AND operator overbelast, is de MethodInfo methode die de implementatiemethode vertegenwoordigt.

    Note

    De operator voor voorwaardelijk AND kan niet worden overbelast in C# of Visual Basic. De voorwaardelijke AND operator wordt echter geëvalueerd met behulp van de bitsgewijze AND operator. Een door de gebruiker gedefinieerde overbelasting van de bitsgewijze AND operator kan dus de implementatiemethode voor dit knooppunttype zijn.

  • Anders, als left. Typ en right. Type zijn Booleaanse typen, de implementatiemethode is null.

Type knooppunt en opgeheven versus niet-opgeheven

Als de implementatiemethode niet null is:

  • Als left.Type en right.Type kunnen worden toegewezen aan de bijbehorende argumenttypen van de implementatiemethode, dan wordt het knooppunt niet opgeheven. Het type van het knooppunt is het retourtype van de implementatiemethode.

  • Als aan de volgende twee voorwaarden wordt voldaan, wordt het knooppunt opgeheven en is het type van het knooppunt het type null dat overeenkomt met het retourtype van de implementatiemethode:

    • left. Typ en right. Het type zijn beide waardetypen waarvan ten minste één null-waarde kan worden gebruikt en de bijbehorende niet-null-bare typen zijn gelijk aan de bijbehorende argumenttypen van de implementatiemethode.

    • Het retourtype van de implementatiemethode is een niet-null-waardetype.

Als de implementatiemethode het volgende is null:

  • left. Typ en right. Het type is hetzelfde Booleaanse type.

  • Als left. Typ en right. Het type kan niet null zijn, het knooppunt wordt niet opgeheven. Het type van het knooppunt is het resultaattype van de vooraf gedefinieerde voorwaardelijke AND operator.

  • Als left. Typ en right. Het type kan null worden, het knooppunt wordt opgeheven. Het type van het knooppunt is het null-type dat overeenkomt met het resultaattype van de vooraf gedefinieerde voorwaardelijke AND operator.

Van toepassing op