Expression.AndAlso メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き AND
演算を表す true
を作成します。
オーバーロード
AndAlso(Expression, Expression, MethodInfo) |
1 番目のオペランドが true に解決された場合にのみ 2 番目のオペランドを評価する条件付き BinaryExpression 演算を表す |
AndAlso(Expression, Expression) |
1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き |
AndAlso(Expression, Expression, MethodInfo)
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 プロパティと、指定した値に設定された AndAlso、Left、および Right の各プロパティを含む Method。
例外
left
または right
が null
です。
method
は null
ではなく、それを表すメソッドは void
を返し、static
(Visual Basic では Shared
) ではなく、またはちょうど 2 つの引数を受け取りません。
method
は null
で、left
.Type および right
.Type にはビット処理 AND
演算子が定義されていません。
- または -
method
は null
で、left
.Type と right
.Type は同じブール型ではありません。
注釈
結果 BinaryExpression の プロパティは、 Method 実装メソッドに設定されます。 プロパティは Type ノードの型に設定されます。 ノードがリフトされた場合、 IsLifted プロパティと IsLiftedToNull プロパティは両方とも true
になります。 それ以外の場合は です false
。 Conversion プロパティが null
です。
次の情報では、実装メソッド、ノードの種類、およびノードがリフトされるかどうかについて説明します。
メソッドの実装
操作の実装方法は、次の規則に基づいて選択されます。
が でなく
null
、static
2 つの引数を受け取る非 void メソッド (Shared
Visual 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)
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
または right
が null
です。
ビットごとの 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
になります。 それ以外の場合は です false
。 Conversion プロパティが 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 許容型です。
適用対象
.NET