Expression.And Metod

Definition

Skapar en BinaryExpression som representerar en bitvis AND åtgärd.

Överlagringar

Name Description
And(Expression, Expression)

Skapar en BinaryExpression som representerar en bitvis AND åtgärd.

And(Expression, Expression, MethodInfo)

Skapar en BinaryExpression som representerar en bitvis AND åtgärd. Implementeringsmetoden kan anges.

And(Expression, Expression)

Skapar en BinaryExpression som representerar en bitvis AND åtgärd.

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

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 And 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.

Exempel

I följande kodexempel visas hur du skapar ett uttryck som representerar en logisk AND-åtgärd för två booleska värden.

// 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

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 left eller right representerar en användardefinierad typ som överbelastar bitvis-operatorn AND är den som representerar den MethodInfo metoden implementeringsmetoden.

  • Annars, om left. Skriv och right. Typen är integral eller boolesk typ, implementeringsmetoden är null.

Nodtyp och lyft jämfört med icke-lyft

Om implementeringsmetoden inte nullär :

  • Om left.Typ och right.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.Typ och right.Typ är båda värdetyper av vilka minst en är nullbar och vars motsvarande icke-nullbara typer är lika med de motsvarande argumenttyperna för den implementerande metoden.

    • Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.

Om implementeringsmetoden är null:

  • Om left.Type och right.Type båda är icke-nullable, lyfts noden inte. Nodens typ är resultattypen för den fördefinierade bitvisoperatorn AND .

  • Om left.Typ och right.Typ båda är nullbara, lyfts noden. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade bitvisoperatorn AND .

Gäller för

And(Expression, Expression, MethodInfo)

Skapar en BinaryExpression som representerar en bitvis AND åtgärd. Implementeringsmetoden kan anges.

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

Parametrar

left
Expression

En Expression som egenskapen Left ska vara lika med.

right
Expression

En Expression som egenskapen Right ska vara lika med.

method
MethodInfo

A MethodInfo för att ange egenskapen Method lika med.

Returer

En BinaryExpression som har NodeType egenskapen lika med And 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.

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 method inte är null och den representerar en icke-void, static (Shared i Visual Basic) som tar två argument, är det implementeringsmetoden för noden.

  • Annars, om Type egenskapen för antingen left eller right representerar en användardefinierad typ som överbelastar bitvis-operatorn AND , MethodInfo är den som representerar den metoden implementeringsmetoden.

  • Annars, om left. Skriv och right. Typen är integral eller boolesk typ, implementeringsmetoden är null.

Nodtyp och lyft jämfört med icke-lyft

Om implementeringsmetoden inte nullär :

  • Om left.Typ och right.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.Typ och right.Typ är båda värdetyper av vilka minst en är nullbar och vars motsvarande icke-nullbara typer är lika med de motsvarande argumenttyperna för den implementerande metoden.

    • Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.

Om implementeringsmetoden är null:

  • Om left.Type och right.Type båda är icke-nullable, lyfts noden inte. Nodens typ är resultattypen för den fördefinierade bitvisoperatorn AND .

  • Om left.Typ och right.Typ båda är nullbara, lyfts noden. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade bitvisoperatorn AND .

Gäller för