語言

Expression.Divide 方法

定義

產生 BinaryExpression 一個代表算術除法運算的 。

多載

名稱 Description
Divide(Expression, Expression)

產生 BinaryExpression 一個代表算術除法運算的 。

Divide(Expression, Expression, MethodInfo)

產生 BinaryExpression 一個代表算術除法運算的 。 可指定實作方法。

Divide(Expression, Expression)

來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs

產生 BinaryExpression 一個代表算術除法運算的 。

public:
 static System::Linq::Expressions::BinaryExpression ^ Divide(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Divide(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Divide : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Divide (left As Expression, right As Expression) As BinaryExpression

參數

left
Expression

Expression An 設定屬性Left。

right
Expression

Expression An 設定屬性Right。

傳回

BinaryExpression一個屬性等NodeType於 ,Divide且 Left 和 Right 屬性設定為指定值的 a。

例外狀況

left 或 right 為 null。

除算符對 未定義。 left類型與 right。打字。

範例

以下程式碼範例展示了如何建立一個將第一個參數除以第二個參數的表達式。

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression divides its first argument by its second argument.
// Both arguments must be of the same type.
Expression divideExpr = Expression.Divide(
    Expression.Constant(10.0),
    Expression.Constant(4.0)
);

// Print out the expression.
Console.WriteLine(divideExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda<Func<double>>(divideExpr).Compile()());

// This code example produces the following output:
//
// (10/4)
// 2.5
' Add the following directive to your file:
' Imports System.Linq.Expressions   

' This expression divides its first argument by its second argument.
' Both arguments must be of the same type.
Dim divideExpr As Expression = Expression.Divide(
    Expression.Constant(10.0),
    Expression.Constant(4.0)
)

' Print the expression.
Console.WriteLine(divideExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda(Of Func(Of Double))(divideExpr).Compile()())

' This code example produces the following output:
'
' (10/4)
' 2.5

備註

結果 BinaryExpression 中,該屬性設定 Method 為實作方法。 屬性 Type 會設定為節點的類型。 如果節點被取消,IsLifted 和 IsLiftedToNull 屬性都是 true。 否則,它們是 false。 IsEditable 屬性為 true。

下列資訊描述實作方法、節點類型,以及節點是否已解除。

實作方法

以下規則決定了操作的實作方法:

  • 若 Type 或 left 的right屬性代表使用者定義的型別,該型別會超載除法運算子,則MethodInfo代表該方法的 就是實作方法。

  • 否則,如果left.類型 和right.類型是數值類型,則實作方法為null。

節點類型與提升與非提升

如果實作方法不是 null:

  • 如果 left.型別和 right.型別可以指派給實作方法的對應參數型別,則節點不會被解除。 節點的類型是實作方法的傳回型別。

  • 如果符合下列兩個條件,則節點會提升,並且該節點的類型是對應至實作方法傳回型別的可空類型:

    • left.型別 與 right.型別 都是實值型別,其中至少一個可為 Null,而對應的不可為 Null 型別等於實作方法的對應參數類型。

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

如果實作方法為 null:

  • 如果left.類型與right.類型都是不可為 Null 的,節點不會被提升。 節點的類型是預先定義除法運算子的結果類型。

  • 如果 left.Type 和 right.Type 都是可為 null 的,則該節點會提升。 節點的類型是可空的類型,對應於預定義除法運算子的結果類型。

適用於

Divide(Expression, Expression, MethodInfo)

來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs
來源:
BinaryExpression.cs

產生 BinaryExpression 一個代表算術除法運算的 。 可指定實作方法。

public:
 static System::Linq::Expressions::BinaryExpression ^ Divide(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Divide(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Divide(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member Divide : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Divide (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression

參數

left
Expression

Expression A 將屬性Left設為 。

right
Expression

Expression A 將屬性Right設為 。

method
MethodInfo

MethodInfo A 將屬性設Method為 。

傳回

BinaryExpression A 的屬性等NodeType於 Divide ,且Left屬性為 ,RightMethod屬性設定為指定的值。

例外狀況

left 或 right 為 null。

method不是null,且它所代表的方法回傳 void, 是 (在 staticShared Visual Basic 中),或不恰好接受兩個參數。

method 是 null ,且除法算子對 不定義。 left類型與 right。打字。

備註

結果 BinaryExpression 中,該屬性設定 Method 為實作方法。 屬性 Type 會設定為節點的類型。 如果節點被取消,IsLifted 和 IsLiftedToNull 屬性都是 true。 否則,它們是 false。 IsEditable 屬性為 true。

下列資訊描述實作方法、節點類型,以及節點是否已解除。

實作方法

以下規則決定了操作的實作方法:

  • 如果method不是null,且它代表一個非空staticShared(在 Visual Basic 中)且接受兩個參數的方法,則它是該節點的實作方法。

  • 否則,若 Type 的leftright屬性代表使用者定義的型別,且會超載除法運算子,則代表該方法的 即MethodInfo為實作方法。

  • 否則,如果left.類型 和right.類型是數值類型,則實作方法為null。

節點類型與提升與非提升

如果實作方法不是 null:

  • 如果 left.型別和 right.型別可以指派給實作方法的對應參數型別,則節點不會被解除。 節點的類型是實作方法的傳回型別。

  • 如果符合下列兩個條件,則節點會提升,並且該節點的類型是對應至實作方法傳回型別的可空類型:

    • left.型別 與 right.型別 都是實值型別,其中至少一個可為 Null,而對應的不可為 Null 型別等於實作方法的對應參數類型。

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

如果實作方法為 null:

  • 如果left.類型與right.類型都是不可為 Null 的,節點不會被提升。 節點的類型是預先定義除法運算子的結果類型。

  • 如果 left.Type 和 right.Type 都是可為 null 的,則該節點會提升。 節點的類型是可空的類型,對應於預定義除法運算子的結果類型。

適用於