Expression.NegateChecked 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立 UnaryExpression,其代表包含溢位檢查的算術負運算。
多載
NegateChecked(Expression) |
建立 UnaryExpression,其代表包含溢位檢查的算術負運算。 |
NegateChecked(Expression, MethodInfo) |
建立 UnaryExpression,其代表包含溢位檢查的算術負運算。 實作的方法可加以指定。 |
NegateChecked(Expression)
建立 UnaryExpression,其代表包含溢位檢查的算術負運算。
public:
static System::Linq::Expressions::UnaryExpression ^ NegateChecked(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression NegateChecked (System.Linq.Expressions.Expression expression);
static member NegateChecked : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function NegateChecked (expression As Expression) As UnaryExpression
參數
- expression
- Expression
要將 Expression 屬性設定為與之相等的 Operand。
傳回
UnaryExpression,其 NodeType 屬性等於 NegateChecked,而 Operand 屬性設定為指定的值。
例外狀況
expression
為 null
。
不會為 expression
.Type 定義一元減號運算子。
備註
Method產生的 UnaryExpression 屬性會設定為實作方法。 屬性 Type 會設定為節點的類型。 如果隨即解除節點, IsLifted 和 IsLiftedToNull 屬性都是 true
。 否則,它們是 false。
實作方法
下列規則會決定作業的實作方法:
如果為
expression
。類型是定義一元減號運算符的使用者定義型別, MethodInfo 表示該運算符是實作方法。否則,如果
expression
為 。類型是數值類型,實作方法是null
。
節點類型和隨即轉移與非隨即轉移的比較
如果實作方法不是 null
:
如果為
expression
。類型可指派給實作方法的自變數類型,節點不會隨即解除。 節點的類型是實作方法的傳回型別。如果滿足下列兩個條件,則會隨即解除節點,而節點的類型是對應至實作方法之傳回型別的可為 Null 型別:
expression
.類型是可為 Null 的實值型別,且對應的不可為 Null 實作實作方法的自變數類型相等。實作方法的傳回型別是不可為 Null 的實值型別。
如果實作方法為 null
,則節點的類型為 expression
。類型。 如果為 expression
。類型不可為 Null,節點不會隨即解除。 否則,節點會隨即隨即轉移。
適用於
NegateChecked(Expression, MethodInfo)
建立 UnaryExpression,其代表包含溢位檢查的算術負運算。 實作的方法可加以指定。
public:
static System::Linq::Expressions::UnaryExpression ^ NegateChecked(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression NegateChecked (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression NegateChecked (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo? method);
static member NegateChecked : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function NegateChecked (expression As Expression, method As MethodInfo) As UnaryExpression
參數
- expression
- Expression
要將 Expression 屬性設定為與之相等的 Operand。
- method
- MethodInfo
要將 MethodInfo 屬性設定為與之相等的 Method。
傳回
UnaryExpression,其 NodeType 屬性等於 NegateChecked,且 Operand 和 Method 屬性設定為指定的值。
例外狀況
expression
為 null
。
method
不是 null
,而且其代表的方法傳回的是 void
,不是 static
(在 Visual Basic 中為 Shared
),或者使用的引數不是剛好一個。
method
為 null
,且不會為 expression
.Type 定義一元減號運算子。
-或-
expression
.Type (如果它是可為 Null 的實質類型,則為其對應之不可為 Null 的類型) 無法指派給 method
所代表之方法的引數類型。
備註
Method產生的 UnaryExpression 屬性會設定為實作方法。 屬性 Type 會設定為節點的類型。 如果隨即解除節點, IsLifted 和 IsLiftedToNull 屬性都是 true
。 否則,它們是 false。
實作方法
下列規則會決定作業的實作方法:
如果
method
不是null
且它代表非 void,static
(Shared
Visual Basic) 方法中採用一個自變數,則為節點的實作方法。如果為
expression
。類型是定義一元減號運算符的使用者定義型別, MethodInfo 表示該運算符是實作方法。否則,如果
expression
為 。類型是數值類型,實作方法是null
。
節點類型和隨即轉移與非隨即轉移的比較
如果實作方法不是 null
:
如果為
expression
。類型可指派給實作方法的自變數類型,節點不會隨即解除。 節點的類型是實作方法的傳回型別。如果滿足下列兩個條件,則會隨即解除節點,而節點的類型是對應至實作方法之傳回型別的可為 Null 型別:
expression
.類型是可為 Null 的實值型別,且對應的不可為 Null 實作實作方法的自變數類型相等。實作方法的傳回型別是不可為 Null 的實值型別。
如果實作方法為 null
,則節點的類型為 expression
。類型。 如果為 expression
。類型不可為 Null,節點不會隨即解除。 否則,節點會隨即隨即轉移。