UnaryExpression 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表具有一元運算子的運算式。
public ref class UnaryExpression sealed : System::Linq::Expressions::Expression
public sealed class UnaryExpression : System.Linq.Expressions.Expression
type UnaryExpression = class
inherit Expression
Public NotInheritable Class UnaryExpression
Inherits Expression
- 繼承
範例
下列範例會 UnaryExpression 建立 物件,此物件表示不可為 Null 整數表達式的參考轉換為可為 Null 的整數類型。
// Create a UnaryExpression that represents a
// conversion of an int to an int?.
System.Linq.Expressions.UnaryExpression typeAsExpression =
System.Linq.Expressions.Expression.TypeAs(
System.Linq.Expressions.Expression.Constant(34, typeof(int)),
typeof(int?));
Console.WriteLine(typeAsExpression.ToString());
// This code produces the following output:
//
// (34 As Nullable`1)
' Create a UnaryExpression that represents a reference
' conversion of an Integer to an Integer? (a nullable Integer).
Dim typeAsExpression As System.Linq.Expressions.UnaryExpression = _
System.Linq.Expressions.Expression.TypeAs( _
System.Linq.Expressions.Expression.Constant(34, Type.GetType("System.Int32")), _
Type.GetType("System.Nullable`1[System.Int32]"))
Console.WriteLine(typeAsExpression.ToString())
' This code produces the following output:
'
' (34 As Nullable`1)
備註
下表摘要說明可用來建立 UnaryExpression 具有特定節點類型的 Factory 方法。
NodeType | Factory 方法 |
---|---|
ArrayLength | ArrayLength |
Convert | Convert |
ConvertChecked | ConvertChecked |
Negate | Negate |
NegateChecked | NegateChecked |
Not | Not |
Quote | Quote |
TypeAs | TypeAs |
UnaryPlus | UnaryPlus |
此外, MakeUnary 方法也可以用來建立 UnaryExpression。 這些處理站方法可用來建立 UnaryExpression 任何代表一元作業的節點類型。 屬於類型的 NodeType 這些方法參數會指定所需的節點類型。
屬性
CanReduce |
取得值,指出是否可以減少運算式樹狀架構的節點。 |
CanReduce |
表示節點可精簡為更簡單的節點。 如果傳回 true,則可呼叫 Reduce() 以產生精簡的形式。 (繼承來源 Expression) |
IsLifted |
取得值,這個值指出運算式樹狀節點是否表示對運算子的消除呼叫。 |
IsLiftedToNull |
取得值,這個值指出運算式樹狀節點是否表示對運算子的消除呼叫,該運算子的傳回型別對可為 null 的型別已消除。 |
Method |
取得一元作業的實作方法。 |
NodeType |
傳回這個 Expression 的節點類型。 |
NodeType |
取得這個 Expression 的節點類型。 (繼承來源 Expression) |
Operand |
取得一元作業的運算元。 |
Type |
取得此 Expression 代表之運算式的靜態類型。 |
Type |
取得此 Expression 代表之運算式的靜態類型。 (繼承來源 Expression) |
方法
Accept(ExpressionVisitor) |
分派給這個節點類型的特定造訪方法。 例如,MethodCallExpression 會呼叫 VisitMethodCall(MethodCallExpression)。 (繼承來源 Expression) |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Reduce() |
將運算式節點精簡為更簡單的運算式。 |
Reduce() |
將這個節點精簡為更簡單的運算式。 如果 CanReduce 傳回 true,則應該傳回有效的運算式。 這個方法可以傳回其他本身必須精簡的節點。 (繼承來源 Expression) |
ReduceAndCheck() |
將這個節點精簡為更簡單的運算式。 如果 CanReduce 傳回 true,則應該傳回有效的運算式。 這個方法可以傳回其他本身必須精簡的節點。 (繼承來源 Expression) |
ReduceExtensions() |
將運算式精簡為已知的節點類型 (不是 Extension 節點),如果已經是已知的類型,則僅傳回運算式。 (繼承來源 Expression) |
ToString() |
傳回 Expression 的文字表示。 (繼承來源 Expression) |
Update(Expression) |
建立類似這個運算式的新運算式,但使用提供的子系。 如果所有子系都相同,則會傳回這個運算式。 |
VisitChildren(ExpressionVisitor) |
精簡節點,然後呼叫精簡後的運算式上的訪問項委派。 如果節點無法縮減,此方法會擲回例外狀況。 (繼承來源 Expression) |