Freigeben über


Expression.Modulo Methode

Definition

Erstellt eine BinaryExpression , die einen arithmetischen Restvorgang darstellt.

Überlädt

Name Beschreibung
Modulo(Expression, Expression)

Erstellt eine BinaryExpression , die einen arithmetischen Restvorgang darstellt.

Modulo(Expression, Expression, MethodInfo)

Erstellt eine BinaryExpression , die einen arithmetischen Restvorgang darstellt.

Modulo(Expression, Expression)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

Erstellt eine BinaryExpression , die einen arithmetischen Restvorgang darstellt.

public:
 static System::Linq::Expressions::BinaryExpression ^ Modulo(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Modulo(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Modulo : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Modulo (left As Expression, right As Expression) 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.

Gibt zurück

A BinaryExpression that has the NodeType property equal to Modulo and the LeftRight properties set to the specified values.

Ausnahmen

left oder right ist null.

Der Modulusoperator ist nicht 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 ausgewählte Implementierungsmethode für den Vorgang:

  • Wenn die Type Eigenschaft eines left oder right eines benutzerdefinierten Typs darstellt, der den Modulusoperator überlastet, ist dies MethodInfo die Implementierungsmethode.

  • Andernfalls, wenn left. Typ und right. Typ sind numerische Typen, die Implementierungsmethode lautet null.

Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen

Wenn die Implementierungsmethode nicht nullist:

  • Wenn left.Typ und right.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 und right.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 und right.Typ beide nicht-nullbar sind, ist der Knoten nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Modulusoperators.

  • Wenn left.Typ und right.Typ beide nullbar sind, wird der Knoten angehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten Modulusoperators entspricht.

Gilt für:

Modulo(Expression, Expression, MethodInfo)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

Erstellt eine BinaryExpression , die einen arithmetischen Restvorgang darstellt.

public:
 static System::Linq::Expressions::BinaryExpression ^ Modulo(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Modulo(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Modulo(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member Modulo : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Modulo (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 entsprichtModulo, 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 Modulusoperator nicht 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 Implementierungsmethode für den Vorgang wird basierend auf den folgenden Regeln ausgewählt:

  • Wenn method nicht null und stellt eine nicht leere (Shared in Visual Basic) -Methode dar, static die zwei Argumente akzeptiert, ist es die Implementierungsmethode für den Knoten.

  • Andernfalls, wenn die Type Eigenschaft eines left oder right eines benutzerdefinierten Typs darstellt, der den Modulus-Operator überlastet, der MethodInfo diese Methode darstellt, ist die Implementierungsmethode.

  • Andernfalls, wenn left. Typ und right. Typ sind numerische Typen, die Implementierungsmethode lautet null.

Knotentyp und aufgehoben im Vergleich zu nicht aufgehobenen

Wenn die Implementierungsmethode nicht nullist:

  • Wenn left.Typ und right.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 und right.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 und right.Typ beide nicht-nullbar sind, ist der Knoten nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Modulusoperators.

  • Wenn left.Typ und right.Typ beide nullbar sind, wird der Knoten angehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten Modulusoperators entspricht.

Gilt für: