Expression.Add Méthode

Définition

Crée un BinaryExpression qui représente une opération d’ajout arithmétique qui n’a pas de vérification de dépassement de capacité.

Surcharges

Nom Description
Add(Expression, Expression)

Crée un BinaryExpression qui représente une opération d’ajout arithmétique qui n’a pas de vérification de dépassement de capacité.

Add(Expression, Expression, MethodInfo)

Crée un BinaryExpression qui représente une opération d’ajout arithmétique qui n’a pas de vérification de dépassement de capacité. La méthode d’implémentation peut être spécifiée.

Add(Expression, Expression)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs

Crée un BinaryExpression qui représente une opération d’ajout arithmétique qui n’a pas de vérification de dépassement de capacité.

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

Paramètres

left
Expression

A Expression pour définir la Left propriété égale à.

right
Expression

A Expression pour définir la Right propriété égale à.

Retours

Qui BinaryExpression a la NodeType propriété égale à Add et les LeftRight propriétés définies sur les valeurs spécifiées.

Exceptions

left ou right est null.

L’opérateur d’ajout n’est pas défini pour left. Type et right. Type.

Exemples

L’exemple de code suivant montre comment créer une expression qui ajoute deux entiers.

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

// This expression adds the values of its two arguments.
// Both arguments must be of the same type.
Expression sumExpr = Expression.Add(
    Expression.Constant(1),
    Expression.Constant(2)
);

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

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

// This code example produces the following output:
//
// (1 + 2)
// 3
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression adds the values of its two arguments.
' Both arguments must be of the same type.
Dim sumExpr As Expression = Expression.Add(
    Expression.Constant(1),
    Expression.Constant(2)
    )

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

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

' This code example produces the following output:
'
' (1 + 2)
' 3

Remarques

La méthode Add renvoie un BinaryExpression dont la propriété Method est définie pour 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 IsLifted et IsLiftedToNull sont toutes les deux true. Sinon, ils sont false. La Conversion propriété est 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 soit la propriété Type de left, soit celle de right représente un type utilisateur qui surcharge l’opérateur d’addition, alors la méthode MethodInfo qui représente cette surcharge est la méthode d’implémentation.
  • Sinon, si left.Type et right.Type sont des types numériques, la méthode d’implémentation est null.

Type de nœud et élevé par rapport à non-élevé

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

  • Si left. Type 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 satisfaites, 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.Type et right.Type sont tous deux des types 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 valeur non nullable.

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

  • Si left.Type et right.Type sont tous les deux non-nullables, le nœud n’est pas soulevé. Le type du nœud est le type de résultat de l’opérateur d’ajout prédéfini.
  • Si left.Type et right.Type autorisent tous deux la valeur NULL, 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 d’ajout prédéfini.

S’applique à

Add(Expression, Expression, MethodInfo)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
BinaryExpression.cs

Crée un BinaryExpression qui représente une opération d’ajout arithmétique qui n’a pas de vérification de dépassement de capacité. La méthode d’implémentation peut être spécifiée.

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

Paramètres

left
Expression

A Expression pour définir la Left propriété égale à.

right
Expression

A Expression pour définir la Right propriété égale à.

method
MethodInfo

A MethodInfo pour définir la Method propriété égale à.

Retours

Qui BinaryExpression a la NodeType propriété égale à Add et les LeftRightMethod propriétés définies sur les valeurs spécifiées.

Exceptions

left ou right est null.

method n’est pas null et la méthode qu’elle représente renvoie void, n’est pas static (Shared en Visual Basic) ou ne prend pas exactement deux arguments.

method est null et l’opérateur d’ajout n’est pas défini pour left. Type et right. Type.

Remarques

La méthode Add renvoie un BinaryExpression dont la propriété Method est définie pour 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 IsLifted et IsLiftedToNull sont toutes les deux true. Sinon, ils sont false. La Conversion propriété est 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 soit la propriété Type de left, soit celle de right représente un type utilisateur qui surcharge l’opérateur d’addition, alors la méthode MethodInfo qui représente cette surcharge est la méthode d’implémentation.
  • Sinon, si left.Type et right.Type sont des types numériques, la méthode d’implémentation est null.

Type de nœud et élevé par rapport à non-élevé

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

  • Si left. Type 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 satisfaites, 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.Type et right.Type sont tous deux des types 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 valeur non nullable.

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

  • Si left.Type et right.Type sont tous les deux non-nullables, le nœud n’est pas soulevé. Le type du nœud est le type de résultat de l’opérateur d’ajout prédéfini.
  • Si left.Type et right.Type autorisent tous deux la valeur NULL, 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 d’ajout prédéfini.

S’applique à