語言

Expression.And 方法

定義

會產生 BinaryExpression 一個代表位元運算 AND 的 a。

多載

名稱 Description
And(Expression, Expression)

會產生 BinaryExpression 一個代表位元運算 AND 的 a。

And(Expression, Expression, MethodInfo)

會產生 BinaryExpression 一個代表位元運算 AND 的 a。 可指定實作方法。

And(Expression, Expression)

來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs

會產生 BinaryExpression 一個代表位元運算 AND 的 a。

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

參數

left
Expression

Expression A 將屬性設Left為 。

right
Expression

Expression A 將屬性設Right為 。

傳回

BinaryExpression一個屬性等NodeType於 ,And且 Left 和 Right 屬性設定為指定值的 a。

例外狀況

left 或 right 為 null。

位 AND 元運算子對 未定義 left。類型與 right。打字。

範例

以下程式碼範例說明如何建立一個表達式,代表兩個布林值上的邏輯 AND 運算。

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

備註

結果 BinaryExpression 中,該屬性設定 Method 為實作方法。 屬性 Type 會設定為節點的類型。 如果節點被取消,IsLifted 和 IsLiftedToNull 屬性都是 true。 否則,它們是 false。 IsEditable 屬性為 true。

下列資訊描述實作方法、節點類型,以及節點是否已解除。

實作方法

以下規則決定了操作的實作方法:

  • 如果 Type 或 left 的right屬性代表使用者定義的型別,該型別會超載位元運算AND子,那麼代表該方法的 就是MethodInfo實作方法。

  • 否則,若 left。類型與 right。類型是整數型或布林型,實作方法是 null。

節點類型與提升與非提升

如果實作方法不是 null:

  • 如果 left.型別和 right.型別可以指派給實作方法的對應參數型別,則節點不會被解除。 節點的類型是實作方法的傳回型別。

  • 如果符合下列兩個條件,則節點會提升,並且該節點的類型是對應至實作方法傳回型別的可空類型:

    • left.型別 與 right.型別 都是實值型別,其中至少一個可為 Null,而對應的不可為 Null 型別等於實作方法的對應參數類型。

    • 實作方法的傳回型別是不可為 Null 的實值型別。

如果實作方法為 null:

  • 如果left.類型與right.類型都是不可為 Null 的,節點不會被提升。 節點的型別是預先定義的位元運算 AND 子的結果型態。

  • 如果 left.Type 和 right.Type 都是可為 null 的,則該節點會提升。 節點的型別是可空的型別,對應於預先定義的位元運算 AND 子的結果型別。

適用於

And(Expression, Expression, MethodInfo)

來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs

會產生 BinaryExpression 一個代表位元運算 AND 的 a。 可指定實作方法。

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

參數

left
Expression

Expression A 將屬性Left設為 。

right
Expression

Expression A 將屬性Right設為 。

method
MethodInfo

MethodInfo A 將屬性設Method為 。

傳回

BinaryExpression A 的屬性等NodeType於 And ,且Left屬性為 ,RightMethod屬性設定為指定的值。

例外狀況

left 或 right 為 null。

method不是null,且它所代表的方法回傳 void, 是 (在 staticShared Visual Basic 中),或不恰好接受兩個參數。

method 是 null ,且位元 AND 運算子對 不定義。 left類型與 right。打字。

備註

結果 BinaryExpression 中,該屬性設定 Method 為實作方法。 屬性 Type 會設定為節點的類型。 如果節點被取消,IsLifted 和 IsLiftedToNull 屬性都是 true。 否則,它們是 false。 IsEditable 屬性為 true。

下列資訊描述實作方法、節點類型,以及節點是否已解除。

實作方法

操作的實作方法依據以下規則選擇:

  • 如果method不是null,且它代表一個非空staticShared(在 Visual Basic 中)且接受兩個參數的方法,則它是該節點的實作方法。

  • 否則,若 Type 的leftright屬性代表使用者定義的型別,且會超載位元運算AND子,則MethodInfo代表該方法的 即為實作方法。

  • 否則,若 left。類型與 right。類型是整數型或布林型,實作方法是 null。

節點類型與提升與非提升

如果實作方法不是 null:

  • 如果 left.型別和 right.型別可以指派給實作方法的對應參數型別,則節點不會被解除。 節點的類型是實作方法的傳回型別。

  • 如果符合下列兩個條件,則節點會提升,並且該節點的類型是對應至實作方法傳回型別的可空類型:

    • left.型別 與 right.型別 都是實值型別,其中至少一個可為 Null,而對應的不可為 Null 型別等於實作方法的對應參數類型。

    • 實作方法的傳回型別是不可為 Null 的實值型別。

如果實作方法為 null:

  • 如果left.類型與right.類型都是不可為 Null 的,節點不會被提升。 節點的型別是預先定義的位元運算 AND 子的結果型態。

  • 如果 left.Type 和 right.Type 都是可為 null 的,則該節點會提升。 節點的型別是可空的型別,對應於預先定義的位元運算 AND 子的結果型別。

適用於