Expression.Divide Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine BinaryExpression , die einen arithmetischen Divisionsvorgang darstellt.
Überlädt
| Name | Beschreibung |
|---|---|
| Divide(Expression, Expression) |
Erstellt eine BinaryExpression , die einen arithmetischen Divisionsvorgang darstellt. |
| Divide(Expression, Expression, MethodInfo) |
Erstellt eine BinaryExpression , die einen arithmetischen Divisionsvorgang darstellt. Die Implementierungsmethode kann angegeben werden. |
Divide(Expression, Expression)
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
Erstellt eine BinaryExpression , die einen arithmetischen Divisionsvorgang darstellt.
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
Parameter
- left
- Expression
Ein Expression , auf den die Left Eigenschaft festgelegt werden soll.
- right
- Expression
Ein Expression , auf den die Right Eigenschaft festgelegt werden soll.
Gibt zurück
A BinaryExpression that has the NodeType property equal to Divide and the LeftRight properties set to the specified values.
Ausnahmen
left oder right ist null.
Der Abteilungsoperator ist nicht definiert für left. Typ und right. Typ.
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie Sie einen Ausdruck erstellen, der das erste Argument durch das zweite Argument dividiert.
// 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
Hinweise
Das Ergebnis BinaryExpression hat die Method Eigenschaft auf die Implementierungsmethode festgelegt. Die Type Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die Eigenschaften IsLifted und IsLiftedToNull beide true. Andernfalls sind sie false. Die Conversion Eigenschaft ist null.
Die folgenden Informationen beschreiben die Implementierungsmethode, den Knotentyp und ob ein Knoten aufgehoben wird.
Implementieren der Methode
Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:
Wenn die Type Eigenschaft eines
leftoderrighteines benutzerdefinierten Typs darstellt, der den Divisionsoperator überlastet, ist dies MethodInfo die Implementierungsmethode.Andernfalls, wenn
left. Typ undright. Typ sind numerische Typen, die Implementierungsmethode lautetnull.
Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen
Wenn die Implementierungsmethode nicht nullist:
Wenn
left.Typ undright.Typ den entsprechenden Argumenttypen der Implementierungsmethode zugewiesen werden können, wird der Knoten nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der Implementierungsmethode.Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten aufgehoben, und der Typ des Knotens ist der nullable Typ, der dem Rückgabetyp der Implementierungsmethode entspricht:
left.Type undright.Type sind beide Werttypen, von denen mindestens einer ein Nullable-Typ ist, und die entsprechenden nicht-nullbaren Typen sind identisch mit den entsprechenden Argumenttypen der implementierenden Methode.Der Rückgabetyp der Implementierungsmethode ist ein nicht nullwertbarer Werttyp.
Wenn die Implementierungsmethode lautet null:
Wenn
left.Typ undright.Typ beide nicht-nullbar sind, ist der Knoten nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Divisionoperators.Wenn
left.Typ undright.Typ beide nullbar sind, wird der Knoten angehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten Divisionsoperators entspricht.
Gilt für:
Divide(Expression, Expression, MethodInfo)
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
- Quelle:
- BinaryExpression.cs
Erstellt eine BinaryExpression , die einen arithmetischen Divisionsvorgang darstellt. Die Implementierungsmethode kann angegeben werden.
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
Parameter
- left
- Expression
Eine Expression , die die Left Eigenschaft gleich festlegen soll.
- right
- Expression
Eine Expression , die die Right Eigenschaft gleich festlegen soll.
- method
- MethodInfo
A MethodInfo , um die Method Eigenschaft gleich festzulegen.
Gibt zurück
Ein BinaryExpression Wert, der die NodeType Eigenschaft entsprichtDivide, und Method die Eigenschaften, die LeftRightauf die angegebenen Werte festgelegt sind.
Ausnahmen
left oder right ist null.
method ist nicht null und die methode, die sie darstellt void, ist nicht static (Shared in Visual Basic) oder verwendet nicht genau zwei Argumente.
method ist null und der Divisionsoperator nicht definiert ist für left. Typ und right. Typ.
Hinweise
Das Ergebnis BinaryExpression hat die Method Eigenschaft auf die Implementierungsmethode festgelegt. Die Type Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die Eigenschaften IsLifted und IsLiftedToNull beide true. Andernfalls sind sie false. Die Conversion Eigenschaft ist null.
Die folgenden Informationen beschreiben die Implementierungsmethode, den Knotentyp und ob ein Knoten aufgehoben wird.
Implementieren der Methode
Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:
Wenn
methodnichtnullund stellt eine nicht leere (Sharedin Visual Basic) -Methode dar,staticdie zwei Argumente akzeptiert, ist es die Implementierungsmethode für den Knoten.Andernfalls, wenn die Type Eigenschaft eines
leftoderrighteines benutzerdefinierten Typs darstellt, der den Divisionsoperator überlastet, der diese Methode darstellt, ist die MethodInfo Implementierungsmethode.Andernfalls, wenn
left. Typ undright. Typ sind numerische Typen, die Implementierungsmethode lautetnull.
Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen
Wenn die Implementierungsmethode nicht nullist:
Wenn
left.Typ undright.Typ den entsprechenden Argumenttypen der Implementierungsmethode zugewiesen werden können, wird der Knoten nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der Implementierungsmethode.Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten aufgehoben, und der Typ des Knotens ist der nullable Typ, der dem Rückgabetyp der Implementierungsmethode entspricht:
left.Type undright.Type sind beide Werttypen, von denen mindestens einer ein Nullable-Typ ist, und die entsprechenden nicht-nullbaren Typen sind identisch mit den entsprechenden Argumenttypen der implementierenden Methode.Der Rückgabetyp der Implementierungsmethode ist ein nicht nullwertbarer Werttyp.
Wenn die Implementierungsmethode lautet null:
Wenn
left.Typ undright.Typ beide nicht-nullbar sind, ist der Knoten nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Divisionoperators.Wenn
left.Typ undright.Typ beide nullbar sind, wird der Knoten angehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten Divisionsoperators entspricht.