Expression.Add Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en BinaryExpression som representerar en aritmisk additionsåtgärd som inte har spillkontroll.
Överlagringar
| Name | Description |
|---|---|
| Add(Expression, Expression) |
Skapar en BinaryExpression som representerar en aritmisk additionsåtgärd som inte har spillkontroll. |
| Add(Expression, Expression, MethodInfo) |
Skapar en BinaryExpression som representerar en aritmisk additionsåtgärd som inte har spillkontroll. Implementeringsmetoden kan anges. |
Add(Expression, Expression)
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
Skapar en BinaryExpression som representerar en aritmisk additionsåtgärd som inte har spillkontroll.
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
Parametrar
- left
- Expression
A Expression för att ange egenskapen Left lika med.
- right
- Expression
A Expression för att ange egenskapen Right lika med.
Returer
En BinaryExpression som har egenskapen NodeType lika med Add och Left egenskaperna och Right inställda på de angivna värdena.
Undantag
left eller right är null.
Additionsoperatorn har inte definierats för left. Skriv och right. Typ.
Exempel
I följande kodexempel visas hur du skapar ett uttryck som lägger till två heltal.
// 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
Kommentarer
Metoden Add returnerar en BinaryExpression som har Method egenskapen inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false. Egenskapen Conversion är null.
Följande information beskriver implementeringsmetoden, nodtypen och om en nod lyfts.
Implementeringsmetod
Följande regler bestämmer den valda implementeringsmetoden för åtgärden:
-
Type Om egenskapen för antingen
leftellerrightrepresenterar en användardefinierad typ som överbelastar additionsoperatorn är den som representerar den MethodInfo metoden implementeringsmetoden. - Annars, om
left.Typ ochright.Typ är numeriska typer, är implementeringsmetodennull.
Nodtyp och lyft jämfört med icke-lyft
Om implementeringsmetoden inte nullär :
Om
left.Typ ochright.Typ kan tilldelas till motsvarande argumenttyper i implementeringsmetoden, lyfts noden inte. Nodens typ är returtypen för implementeringsmetoden.Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:
-
left.Typ ochright.Typ är båda värdetyper av vilka minst en är nullbar och vars motsvarande icke-nullbara typer är lika med de motsvarande argumenttyperna för den implementerande metoden. - Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.
-
Om implementeringsmetoden är null:
- Om
left.Type ochright.Type båda är icke-nullable, lyfts noden inte. Nodens typ är resultattypen för den fördefinierade additionsoperatorn. - Om
left.Typ ochright.Typ båda är nullbara, lyfts noden. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade additionsoperatorn.
Gäller för
Add(Expression, Expression, MethodInfo)
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
- Källa:
- BinaryExpression.cs
Skapar en BinaryExpression som representerar en aritmisk additionsåtgärd som inte har spillkontroll. Implementeringsmetoden kan anges.
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
Parametrar
- left
- Expression
A Expression för att ange egenskapen Left lika med.
- right
- Expression
A Expression för att ange egenskapen Right lika med.
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
Returer
En BinaryExpression som har NodeType egenskapen lika med Add och Leftegenskaperna , Right och Method inställd på de angivna värdena.
Undantag
left eller right är null.
method är inte null och metoden den representerar returnerar void, är inte static (Shared i Visual Basic) eller tar inte exakt två argument.
method är null och additionsoperatorn har inte definierats för left. Skriv och right. Typ.
Kommentarer
Metoden Add returnerar en BinaryExpression som har Method egenskapen inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false. Egenskapen Conversion är null.
Följande information beskriver implementeringsmetoden, nodtypen och om en nod lyfts.
Implementeringsmetod
Följande regler bestämmer den valda implementeringsmetoden för åtgärden:
-
Type Om egenskapen för antingen
leftellerrightrepresenterar en användardefinierad typ som överbelastar additionsoperatorn är den som representerar den MethodInfo metoden implementeringsmetoden. - Annars, om
left.Typ ochright.Typ är numeriska typer, är implementeringsmetodennull.
Nodtyp och lyft jämfört med icke-lyft
Om implementeringsmetoden inte nullär :
Om
left.Typ ochright.Typ kan tilldelas till motsvarande argumenttyper i implementeringsmetoden, lyfts noden inte. Nodens typ är returtypen för implementeringsmetoden.Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:
-
left.Typ ochright.Typ är båda värdetyper av vilka minst en är nullbar och vars motsvarande icke-nullbara typer är lika med de motsvarande argumenttyperna för den implementerande metoden. - Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.
-
Om implementeringsmetoden är null:
- Om
left.Type ochright.Type båda är icke-nullable, lyfts noden inte. Nodens typ är resultattypen för den fördefinierade additionsoperatorn. - Om
left.Typ ochright.Typ båda är nullbara, lyfts noden. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade additionsoperatorn.