Expression.AndAlso メソッド

定義

1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き AND 演算を表す true を作成します。

オーバーロード

AndAlso(Expression, Expression, MethodInfo)

1 番目のオペランドが true に解決された場合にのみ 2 番目のオペランドを評価する条件付き BinaryExpression 演算を表す AND を作成します。 実装メソッドを指定できます。

AndAlso(Expression, Expression)

1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き AND 演算を表す true を作成します。

AndAlso(Expression, Expression, MethodInfo)

ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs

1 番目のオペランドが true に解決された場合にのみ 2 番目のオペランドを評価する条件付き BinaryExpression 演算を表す AND を作成します。 実装メソッドを指定できます。

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

パラメーター

left
Expression

Expression プロパティを等しく設定する Left

right
Expression

Expression プロパティを等しく設定する Right

method
MethodInfo

MethodInfo プロパティを等しく設定する Method

戻り値

BinaryExpression と等しい NodeType プロパティと、指定した値に設定された AndAlsoLeft、および Right の各プロパティを含む Method

例外

left または rightnull です。

methodnull ではなく、それを表すメソッドは void を返し、static (Visual Basic では Shared) ではなく、またはちょうど 2 つの引数を受け取りません。

methodnull で、left.Type および right.Type にはビット処理 AND 演算子が定義されていません。

- または -

methodnull で、left.Type と right.Type は同じブール型ではありません。

注釈

結果 BinaryExpression の プロパティは、 Method 実装メソッドに設定されます。 プロパティは Type ノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティと IsLiftedToNull プロパティは両方とも trueになります。 それ以外の場合は です falseConversion プロパティが null です。

次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。

メソッドの実装

操作の実装方法は、次の規則に基づいて選択されます。

  • が でなくnullstatic 2 つの引数を受け取る非 void メソッド (SharedVisual Basic では) を表す場合methodは、ノードの実装メソッドです。

  • それ以外の場合、 Type または right のいずれかの left プロパティが、ビットごとのAND演算子をオーバーロードするユーザー定義型を表す場合、MethodInfoそのメソッドを表す は実装メソッドです。

    注意

    条件付き AND 演算子は、C# または Visual Basic ではオーバーロードできません。 ただし、条件 AND 演算子はビット演算子 AND を使用して評価されます。 したがって、ビットごとの AND 演算子のユーザー定義オーバーロードは、このノード型の実装メソッドにすることができます。

  • それ以外の場合 leftは 。と 入力します right。型はブール型で、実装メソッドは です null

ノードの種類とリフトされたノードと非リフト

実装メソッドが でない null場合:

  • の場合 left。と 入力します right。型は実装メソッドの対応する引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。

  • 次の 2 つの条件が満たされた場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。

    • left.と 入力します right。型はどちらも、少なくとも 1 つが null 許容である値型であり、対応する null 非許容型は実装メソッドの対応する引数型と等しくなります。

    • 実装メソッドの戻り値の型は null 非許容値型です。

実装メソッドが の場合:null

  • left.と 入力します right。型は同じブール型です。

  • の場合 left。と 入力します right。型は null 非許容であり、ノードはリフトされません。 ノードの型は、定義済みの条件付き AND 演算子の結果の型です。

  • の場合 left。と 入力します right。型は null 許容であり、ノードはリフトされます。 ノードの型は、定義済みの条件 AND 演算子の結果の型に対応する null 許容型です。

適用対象

AndAlso(Expression, Expression)

ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs

1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き AND 演算を表す 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

パラメーター

left
Expression

Expression プロパティを等しく設定する Left

right
Expression

Expression プロパティを等しく設定する Right

戻り値

BinaryExpression と等しい NodeType プロパティと、指定した値に設定された AndAlso プロパティおよび Left プロパティを含む Right

例外

left または rightnull です。

ビットごとの AND 演算子は、left.Type および right.Type に対して定義されていません。

- または -

left.Type と right.Type は同じブール型ではありません。

次のコード例は、最初のオペランドが に評価された場合にのみ、2 つのオペランドに対して論理 AND 演算を実行する式を作成する方法を 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

注釈

結果 BinaryExpression の プロパティは、 Method 実装メソッドに設定されます。 プロパティは Type ノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティと IsLiftedToNull プロパティは両方とも trueになります。 それ以外の場合は です falseConversion プロパティが null です。

次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。

メソッドの実装

次の規則は、操作の実装方法を決定します。

  • または right のいずれかの left プロパティがType、ビットごとのAND演算子をオーバーロードするユーザー定義型を表す場合、MethodInfoそのメソッドを表す は実装メソッドです。

    注意

    条件付き AND 演算子は、C# または Visual Basic ではオーバーロードできません。 ただし、条件 AND 演算子はビット演算子 AND を使用して評価されます。 したがって、ビットごとの AND 演算子のユーザー定義オーバーロードは、このノード型の実装メソッドにすることができます。

  • それ以外の場合 leftは 。と 入力します right。型はブール型で、実装メソッドは です null

ノードの種類とリフトされたノードと非リフト

実装メソッドが でない null場合:

  • の場合 left。と 入力します right。型は実装メソッドの対応する引数型に割り当て可能であり、ノードはリフトされません。 ノードの型は、実装メソッドの戻り値の型です。

  • 次の 2 つの条件が満たされた場合、ノードはリフトされ、ノードの型は実装メソッドの戻り値の型に対応する null 許容型です。

    • left.と 入力します right。型はどちらも、少なくとも 1 つが null 許容である値型であり、対応する null 非許容型は実装メソッドの対応する引数型と等しくなります。

    • 実装メソッドの戻り値の型は null 非許容値型です。

実装メソッドが の場合:null

  • left.と 入力します right。型は同じブール型です。

  • の場合 left。と 入力します right。型は null 非許容であり、ノードはリフトされません。 ノードの型は、定義済みの条件付き AND 演算子の結果の型です。

  • の場合 left。と 入力します right。型は null 許容であり、ノードはリフトされます。 ノードの型は、定義済みの条件 AND 演算子の結果の型に対応する null 許容型です。

適用対象