Expression.Not 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立表示位元補數運算的 UnaryExpression。
多載
Not(Expression) |
建立表示位元補數運算的 UnaryExpression。 |
Not(Expression, MethodInfo) |
建立表示位元補數運算的 UnaryExpression。 實作的方法可加以指定。 |
Not(Expression)
建立表示位元補數運算的 UnaryExpression。
public:
static System::Linq::Expressions::UnaryExpression ^ Not(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression Not (System.Linq.Expressions.Expression expression);
static member Not : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function Not (expression As Expression) As UnaryExpression
參數
- expression
- Expression
要將 Expression 屬性設定為與之相等的 Operand。
傳回
UnaryExpression,其 NodeType 屬性等於 Not,而 Operand 屬性設定為指定的值。
例外狀況
expression
為 null
。
不會為 expression
.Type 定義一元 NOT 運算子。
範例
下列範例示範如何建立代表邏輯 NOT 作業的表達式。
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a NOT operation.
Expression notExpr = Expression.Not(Expression.Constant(true));
Console.WriteLine(notExpr);
// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda<Func<bool>>(notExpr).Compile()());
// This code example produces the following output:
//
// Not(True)
// False
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a NOT operation.
Dim notExpr As Expression = Expression.Not(Expression.Constant(True))
Console.WriteLine(notExpr)
' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(notExpr).Compile()())
' This code example produces the following output:
'
' Not(True)
' False
備註
產生的 MethodUnaryExpression 屬性會設定為實作方法。 屬性 Type 會設定為節點的類型。 如果節點隨即提升, IsLifted 則與 IsLiftedToNull 屬性都是 true
。 否則,它們是 false
。
實作方法
下列規則會決定作業的實作方法:
如果為
expression
。類型是定義一元 not 運算子的使用者定義型別, MethodInfo 表示該運算符是實作方法。否則,如果
expression
為 。類型是數值或布爾類型,實作方法是null
。
節點類型和隨即轉移與非增益的比較
如果實作方法不是 null
:
如果為
expression
。類型可指派給實作方法的自變數類型,節點不會隨即解除。 節點的類型是實作方法的傳回型別。如果滿足下列兩個條件,則會隨即啟動節點,而節點的類型是對應至實作方法之傳回型別的可為 Null 類型:
expression
.類型是可為 Null 的實值型別,而對應的不可為 Null 型別等於實作方法的自變數類型。實作方法的傳回型別是不可為 Null 的實值型別。
如果實作方法為 null
,則節點的類型為 expression
。類型。 如果為 expression
。類型不可為 Null,節點不會隨即解除。 否則,會隨即啟動節點。
適用於
Not(Expression, MethodInfo)
建立表示位元補數運算的 UnaryExpression。 實作的方法可加以指定。
public:
static System::Linq::Expressions::UnaryExpression ^ Not(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Not (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Not (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo? method);
static member Not : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Not (expression As Expression, method As MethodInfo) As UnaryExpression
參數
- expression
- Expression
要將 Expression 屬性設定為與之相等的 Operand。
- method
- MethodInfo
要將 MethodInfo 屬性設定為與之相等的 Method。
傳回
UnaryExpression,其 NodeType 屬性等於 Not,且 Operand 和 Method 屬性設定為指定的值。
例外狀況
expression
為 null
。
method
不是 null
,而且其代表的方法傳回的是 void
,不是 static
(在 Visual Basic 中為 Shared
),或者使用的引數不是剛好一個。
method
為 null
,且不會為 expression
.Type 定義一元 NOT 運算子。
-或-
expression
.Type (如果它是可為 Null 的實質類型,則為其對應之不可為 Null 的類型) 無法指派給 method
所代表之方法的引數類型。
備註
產生的 MethodUnaryExpression 屬性會設定為實作方法。 屬性 Type 會設定為節點的類型。 如果節點隨即提升, IsLifted 則與 IsLiftedToNull 屬性都是 true
。 否則,它們是 false
。
實作方法
下列規則會決定作業的實作方法:
如果
method
不是null
,而且它代表非 void,static
則 (Shared
在採用一個自變數的 Visual Basic) 方法中,它是節點的實作方法。如果為
expression
。類型是定義一元 not 運算子的使用者定義型別, MethodInfo 表示該運算符是實作方法。否則,如果
expression
為 。類型是數值類型,實作方法為null
。
節點類型和隨即轉移與非增益的比較
如果實作方法不是 null
:
如果為
expression
。類型可指派給實作方法的自變數類型,節點不會隨即解除。 節點的類型是實作方法的傳回型別。如果滿足下列兩個條件,則會隨即啟動節點,而節點的類型是對應至實作方法之傳回型別的可為 Null 類型:
expression
.類型是可為 Null 的實值型別,且對應的不可為 Null 實作實作方法的自變數類型相等。實作方法的傳回型別是不可為 Null 的實值型別。
如果實作方法為 null
,則節點的類型為 expression
。類型。 如果為 expression
。類型不可為 Null,節點不會隨即解除。 否則,會隨即啟動節點。