このドキュメントはアーカイブされており、メンテナンスされていません。

Expression.LeftShift メソッド (Expression, Expression, MethodInfo)

更新 : 2007 年 11 月

ビットごとの左シフト演算を表す BinaryExpression を作成します。実装メソッドを指定できます。

名前空間 :  System.Linq.Expressions
アセンブリ :  System.Core (System.Core.dll 内)

public static BinaryExpression LeftShift(
	Expression left,
	Expression right,
	MethodInfo method
)
public static BinaryExpression LeftShift(
	Expression left,
	Expression right,
	MethodInfo method
)
public static function LeftShift(
	left : Expression, 
	right : Expression, 
	method : MethodInfo
) : BinaryExpression

パラメータ

left
型 : System.Linq.Expressions.Expression

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

right
型 : System.Linq.Expressions.Expression

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

method
型 : System.Reflection.MethodInfo

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

戻り値

型 : System.Linq.Expressions.BinaryExpression

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

例外条件
ArgumentNullException

left または rightnull です。

ArgumentException

method が、null ではなくそれが表すメソッドが void を返すか、static (Visual Basic では Shared) ではないか、または受け取る引数が 2 つだけではありません。

InvalidOperationException

methodnull で、左シフト演算子は left.Type および right.Type に対して定義されていません。

結果として得られた BinaryExpression には、実装メソッドに設定された Method プロパティが含まれています。Type プロパティは、ノードの型に設定されます。ノードがリフトされている場合、IsLifted プロパティと IsLiftedToNull プロパティはどちらも true です。それ以外の場合は、false です。Conversion プロパティが null です。

実装メソッド、ノード型、およびノードがリフトされているかどうかについての情報を、次に示します。

実装メソッド

次の規則により、選択された演算の実装メソッドが決まります。

  • methodnull ではなく、2 つの引数を受け取る void 以外の static (Visual Basic では Shared) メソッドを表している場合は、それがノードの実装メソッドです。

  • また、left または rightType プロパティが、左シフト演算子をオーバーロードするユーザー定義型を表している場合、そのメソッドを表す MethodInfo が実装メソッドです。

  • また、left.Type が整数型 (ByteSByteInt16UInt16Int32UInt32Int64UInt64 のいずれか、または対応する null 許容型) で、right.Type が Int32 の場合、実装メソッドは null です。

ノード型、およびリフトされているかいないか

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

  • left.Type および right.Type は、実装メソッドの対応する引数型に代入可能で、ノードはリフトされていません。ノードの型は、実装メソッドの戻り値の型です。

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

    • left.Type および right.Type はどちらも、少なくとも 1 つが null 許容である値型で、対応する null 非許容型は実装メソッドの対応する引数型と等しくなっている。

    • 実装メソッドの戻り値の型が、null 非許容の値型である。

実装メソッドが null の場合

  • left.Type と right.Type がどちらも null 非許容の場合、ノードはリフトされていません。ノードの型は、定義済み左シフト演算子の結果型です。

  • left.Type と right.Type がどちらも null 許容の場合、ノードはリフトされています。ノードの型は、定義済み左シフト演算子の結果型に対応する null 許容型です。

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5
表示: