本文件已封存並已停止維護。

Expression.LeftShift 方法 (Expression, Expression, MethodInfo)

更新:2007 年 11 月

建立代表位元左移 (Left-Shift) 運算的 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

BinaryExpression,其 NodeType 屬性等於 LeftShift,且 LeftRightMethod 屬性設定為指定的值。

例外狀況條件
ArgumentNullException

leftrightnull

ArgumentException

method 不是 null,而且其代表的方法傳回的是 void,不是 static (在 Visual Basic 中為 Shared),或者使用的引數不是剛好兩個。

InvalidOperationException

methodnull 且不會為 left.Type 和 right.Type 定義 Left-shift 運算子。

產生之 BinaryExpressionMethod 屬性已設定為實作的方法。Type 屬性會設定為節點的型別。如果節點已消除,IsLiftedIsLiftedToNull 屬性都為 true。否則,它們都會是 falseConversion 屬性為 null

下列資訊將說明實作的方法、節點型別,以及節點是否會提升。

實作方法

下列規則可決定這個作業之已選取的實作方法:

  • 如果 method 不是 null,而且其代表非 void、static (在 Visual Basic 中為 Shared) 且採用兩個引數的方法,它就是該節點的實作方法。

  • 否則,如果 leftrightType 屬性表示會多載 Left-shift 運算子的使用者定義型別,則表示該方法的 MethodInfo 為實作的方法。

  • 否則,如果 left.Type 為整數類資料型別 (ByteSByteInt16UInt16Int32UInt32Int64UInt64 或相對應之可為 Null 的型別其中之一) 而 right.Type 為 Int32,實作的方法就是 null

節點型別以及已消除或未消除

如果實作的方法不是 null

  • 如果 left.Type 和 right.Type 可指派給實作方法的對應引數型別,則不會消除節點。節點的型別是實作之方法的傳回型別。

  • 如果符合下列兩個條件,便會消除節點,而節點的型別則為可為 Null 的型別,且該型別對應於實作方法的傳回型別:

    • left.Type 和 right.Type 都是實值型別 (Value Type),其中至少有一個可為 Null,而對應之不可為 Null 的型別則等於實作方法的對應引數型別 (Argument Type)。

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

如果實作的方法為 null

  • 如果 left.Type 和 right.Type 都不可為 Null,則不會消除節點。節點的型別是預先定義之 Left-shift 運算子的結果型別。

  • 如果 left.Type 和 right.Type 都可為 Null,便會消除節點。節點的型別是可為 Null 的型別 (Nullable Type),這個型別會對應至預先定義之 Left-shift 運算子的結果型別。

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求

.NET Framework

支援版本:3.5
顯示: