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