Expression.Modulo Méthode

Définition

Crée un BinaryExpression qui représente une opération arithmétique relative au reste.

Surcharges

Modulo(Expression, Expression)

Crée un BinaryExpression qui représente une opération arithmétique relative au reste.

Modulo(Expression, Expression, MethodInfo)

Crée un BinaryExpression qui représente une opération arithmétique relative au reste.

Modulo(Expression, Expression)

Crée un BinaryExpression qui représente une opération arithmétique relative au reste.

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

Paramètres

left
Expression

Expression auquel la propriété Left doit être égale.

right
Expression

Expression auquel la propriété Right doit être égale.

Retours

BinaryExpression

BinaryExpression dont la propriété NodeType est égale à Modulo et dont les propriétés Left et Right ont les valeurs spécifiées.

Exceptions

left ou right est null.

L'opérateur modulo n'est pas défini pour left.Type et right.Type.

Remarques

Le résultat BinaryExpression a la Method propriété définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull les IsLifted propriétés sont à la fois true. Sinon, ils sont false. La propriété Conversion a la valeur null.

Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.

Implémentation de la méthode

Les règles suivantes déterminent la méthode d’implémentation sélectionnée pour l’opération :

  • Si la propriété de l’un Type ou right l’autre left représente un type défini par l’utilisateur qui surcharge l’opérateur modulus, celle MethodInfo qui représente cette méthode est la méthode d’implémentation.

  • Sinon, si left. Tapez et right. Le type est des types numériques, la méthode d’implémentation est null.

Type de nœud et lifted versus non-lifted

Si la méthode d’implémentation n’est pas null:

  • Si left. Tapez et right. Le type est assignable aux types d’arguments correspondants de la méthode d’implémentation, le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.

  • Si les deux conditions suivantes sont remplies, le nœud est levé et le type du nœud est le type nullable qui correspond au type de retour de la méthode d’implémentation :

    • left. Tapez et right. Le type est les deux types de valeur dont au moins un est nullable et les types non nullables correspondants sont égaux aux types d’argument correspondants de la méthode d’implémentation.

    • Le type de retour de la méthode d’implémentation est un type de valeur non nullable.

Si la méthode d’implémentation est null:

  • Si left. Tapez et right. Le type n’est pas nullable, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur de module prédéfini.

  • Si left. Tapez et right. Le type est à la fois nullable, le nœud est levé. Le type du nœud est le type nullable qui correspond au type de résultat de l’opérateur de module prédéfini.

S’applique à

Modulo(Expression, Expression, MethodInfo)

Crée un BinaryExpression qui représente une opération arithmétique relative au reste.

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

Paramètres

left
Expression

Expression auquel la propriété Left doit être égale.

right
Expression

Expression auquel la propriété Right doit être égale.

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

Retours

BinaryExpression

BinaryExpression dont la propriété NodeType est égale à Modulo et dont les propriétés Left, Right et Method ont les valeurs spécifiées.

Exceptions

left ou right est null.

method n’est pas null et la méthode représentée retourne void, pas static (Shared dans Visual Basic) ou ne prend pas exactement deux arguments.

method est null et l’opérateur modulus n’est pas défini pour les types left et right.

Remarques

Le résultat BinaryExpression a la Method propriété définie sur la méthode d’implémentation. La Type propriété est définie sur le type du nœud. Si le nœud est levé, les propriétés et IsLiftedToNull les IsLifted propriétés sont les deux true. Sinon, ils sont false. La propriété Conversion a la valeur null.

Les informations suivantes décrivent la méthode d’implémentation, le type de nœud et si un nœud est levé.

Implémentation de la méthode

La méthode d’implémentation de l’opération est choisie en fonction des règles suivantes :

  • Si method ce n’est pas le cas null et qu’il représente une méthode non vide ( static``Shared dans Visual Basic) qui accepte deux arguments, il s’agit de la méthode d’implémentation pour le nœud.

  • Sinon, si la propriété de l’un Type left ou right l’autre représente un type défini par l’utilisateur qui surcharge l’opérateur modulus, la MethodInfo méthode d’implémentation représente cette méthode.

  • Sinon, si left. Tapez et right. Le type est des types numériques, la méthode d’implémentation est null.

Type de nœud et lifted et non lifted

Si la méthode d’implémentation n’est pas null:

  • Si left. Tapez et right. Le type est assignable aux types d’arguments correspondants de la méthode d’implémentation, le nœud n’est pas levé. Le type du nœud est le type de retour de la méthode d’implémentation.

  • Si les deux conditions suivantes sont remplies, le nœud est levé et le type du nœud est le type Nullable qui correspond au type de retour de la méthode d’implémentation :

    • left. Tapez et right. Le type est les deux types valeur dont au moins un est nullable et les types non Nullable correspondants sont égaux aux types d’argument correspondants de la méthode d’implémentation.

    • Le type de retour de la méthode d’implémentation est un type valeur non Nullable.

Si la méthode d’implémentation est null:

  • Si left. Tapez et right. Le type n’est pas nullable, le nœud n’est pas levé. Le type du nœud est le type de résultat de l’opérateur modulus prédéfini.

  • Si left. Tapez et right. Le type est à la fois nullable, le nœud est levé. Le type du nœud est le type Nullable qui correspond au type de résultat de l’opérateur modulus prédéfini.

S’applique à