Expression.Add Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een BinaryExpression bewerking voor rekenkundige optellen die geen overloopcontrole heeft.
Overloads
| Name | Description |
|---|---|
| Add(Expression, Expression) |
Hiermee maakt u een BinaryExpression bewerking voor rekenkundige optellen die geen overloopcontrole heeft. |
| Add(Expression, Expression, MethodInfo) |
Hiermee maakt u een BinaryExpression bewerking voor rekenkundige optellen die geen overloopcontrole heeft. De implementatiemethode kan worden opgegeven. |
Add(Expression, Expression)
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
Hiermee maakt u een BinaryExpression bewerking voor rekenkundige optellen die geen overloopcontrole heeft.
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
Parameters
- left
- Expression
A Expression om de Left eigenschap in te stellen die gelijk is aan.
- right
- Expression
A Expression om de Right eigenschap in te stellen die gelijk is aan.
Retouren
Een BinaryExpression met de NodeType eigenschap gelijk aan Add en de Left eigenschappen die Right zijn ingesteld op de opgegeven waarden.
Uitzonderingen
left of right is null.
De optellingsoperator is niet gedefinieerd voor left. Typ en right. Type.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een expressie maakt waarmee twee gehele getallen worden toegevoegd.
// 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
Opmerkingen
De Add methode retourneert een BinaryExpression waarvan de Method eigenschap is ingesteld op de implementerende methode. De Type eigenschap is ingesteld op het type knooppunt. Als het knooppunt wordt opgeheven, zijn de IsLifted en IsLiftedToNull eigenschappen beide true. Anders zijn ze false. De eigenschap Conversion is null.
De volgende informatie beschrijft de implementatiemethode, het knooppunttype en of een knooppunt wordt opgeheven.
Implementatiemethode
De volgende regels bepalen de geselecteerde implementatiemethode voor de bewerking:
- Als de Type eigenschap van een van beide
leftofrighteen door de gebruiker gedefinieerd type vertegenwoordigt dat de opteloperator overbelast, is de MethodInfo de methode die de implementatie vormt. - Anders, als
left.Type enright.Type numerieke typen zijn, is de implementatiemethodenull.
Knooppunttype en opgetild versus niet-opgetild
Als de implementatiemethode niet null is:
Als
left.Type enright.Type kunnen worden toegewezen aan de bijbehorende argumenttypen van de implementatiemethode, dan wordt het knooppunt niet opgeheven. Het type van het knooppunt is het retourtype van de implementatiemethode.Als aan de volgende twee voorwaarden wordt voldaan, wordt het knooppunt opgeheven en is het type van het knooppunt het type null dat overeenkomt met het retourtype van de implementatiemethode:
-
left.Type enright.Type zijn beide waardetypen waarvan er ten minste één nullable is, en de bijbehorende niet-nullable typen zijn gelijk aan de overeenkomstige argumenttypen van de implementatiemethode. - Het retourtype van de implementatiemethode is een niet-null-waardetype.
-
Als de implementatiemethode het volgende is null:
- Als zowel
left.Type alsright.Type niet-nulbaar zijn, wordt het knooppunt niet opgeheven. Het type van het knooppunt is het resultaattype van de vooraf gedefinieerde optellingsoperator. - Als zowel
left.Type alsright.Type beide null-waarden kunnen hebben, wordt het knooppunt verheven. Het type van het knooppunt is het null-type dat overeenkomt met het resultaattype van de vooraf gedefinieerde optellingsoperator.
Van toepassing op
Add(Expression, Expression, MethodInfo)
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
- Bron:
- BinaryExpression.cs
Hiermee maakt u een BinaryExpression bewerking voor rekenkundige optellen die geen overloopcontrole heeft. De implementatiemethode kan worden opgegeven.
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
Parameters
- left
- Expression
A Expression om de Left eigenschap in te stellen die gelijk is aan.
- right
- Expression
A Expression om de Right eigenschap in te stellen die gelijk is aan.
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
Retouren
Een BinaryExpression met de NodeType eigenschap die gelijk is aan Add en de Lefteigenschappen Right die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
left of right is null.
method is niet null en de methode die deze vertegenwoordigt, retourneert void, is niet static (Shared in Visual Basic) of neemt niet precies twee argumenten.
method is null en de optellingsoperator is niet gedefinieerd voor left. Typ en right. Type.
Opmerkingen
De Add methode retourneert een BinaryExpression waarvan de Method eigenschap is ingesteld op de implementerende methode. De Type eigenschap is ingesteld op het type knooppunt. Als het knooppunt wordt opgeheven, zijn de IsLifted en IsLiftedToNull eigenschappen beide true. Anders zijn ze false. De eigenschap Conversion is null.
De volgende informatie beschrijft de implementatiemethode, het knooppunttype en of een knooppunt wordt opgeheven.
Implementatiemethode
De volgende regels bepalen de geselecteerde implementatiemethode voor de bewerking:
- Als de Type eigenschap van een van beide
leftofrighteen door de gebruiker gedefinieerd type vertegenwoordigt dat de opteloperator overbelast, is de MethodInfo de methode die de implementatie vormt. - Anders, als
left.Type enright.Type numerieke typen zijn, is de implementatiemethodenull.
Knooppunttype en opgetild versus niet-opgetild
Als de implementatiemethode niet null is:
Als
left.Type enright.Type kunnen worden toegewezen aan de bijbehorende argumenttypen van de implementatiemethode, dan wordt het knooppunt niet opgeheven. Het type van het knooppunt is het retourtype van de implementatiemethode.Als aan de volgende twee voorwaarden wordt voldaan, wordt het knooppunt opgeheven en is het type van het knooppunt het type null dat overeenkomt met het retourtype van de implementatiemethode:
-
left.Type enright.Type zijn beide waardetypen waarvan er ten minste één nullable is, en de bijbehorende niet-nullable typen zijn gelijk aan de overeenkomstige argumenttypen van de implementatiemethode. - Het retourtype van de implementatiemethode is een niet-null-waardetype.
-
Als de implementatiemethode het volgende is null:
- Als zowel
left.Type alsright.Type niet-nulbaar zijn, wordt het knooppunt niet opgeheven. Het type van het knooppunt is het resultaattype van de vooraf gedefinieerde optellingsoperator. - Als zowel
left.Type alsright.Type beide null-waarden kunnen hebben, wordt het knooppunt verheven. Het type van het knooppunt is het null-type dat overeenkomt met het resultaattype van de vooraf gedefinieerde optellingsoperator.