Język

Expression.Add Metoda

Definicja

Tworzy obiekt reprezentujący operację BinaryExpression dodawania arytmetycznego, która nie ma sprawdzania przepełnienia.

Przeciążenia

Nazwa Opis
Add(Expression, Expression)

Tworzy obiekt reprezentujący operację BinaryExpression dodawania arytmetycznego, która nie ma sprawdzania przepełnienia.

Add(Expression, Expression, MethodInfo)

Tworzy obiekt reprezentujący operację BinaryExpression dodawania arytmetycznego, która nie ma sprawdzania przepełnienia. Można określić metodę implementowania.

Add(Expression, Expression)

Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs

Tworzy obiekt reprezentujący operację BinaryExpression dodawania arytmetycznego, która nie ma sprawdzania przepełnienia.

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

Parametry

left
Expression

A Expression , aby ustawić właściwość równą Left .

right
Expression

A Expression , aby ustawić właściwość równą Right .

Zwraca

WłaściwośćBinaryExpression, która ma właściwość równą NodeTypeAdd i Left właściwości i Right ustawioną na określone wartości.

Wyjątki

left lub right ma wartość null.

Operator dodawania nie jest zdefiniowany dla elementu left. Wpisz i right. Typu.

Przykłady

W poniższym przykładzie kodu pokazano, jak utworzyć wyrażenie, które dodaje dwie liczby całkowite.

// 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

Uwagi

Metoda Add zwraca BinaryExpression, którego właściwość Method jest ustawiona na metodę implementującą. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie podniesiony, zarówno właściwość IsLifted, jak i właściwość IsLiftedToNulltrue. W przeciwnym razie są to false. Właściwość Conversion jest null.

Poniższe informacje opisują metodę implementowania, typ węzła i informację, czy węzeł jest zniesiony.

Implementowanie metody

Następujące reguły określają wybraną metodę implementowania dla operacji:

  • Jeśli właściwość którejkolwiek z Type lub left reprezentuje typ zdefiniowany przez użytkownika, który przeciąża operator dodawania, wtedy metoda right reprezentująca tę operację jest metodą implementacyjną.
  • W przeciwnym razie, jeśli left.Type i right.Type są typami liczbowymi, metodą implementacji jest null.

Typ węzła i podniesiony w porównaniu z niepodniesionym

Jeśli metoda implementacji nie jest null:

  • Jeśli typy left.Typ i right.Typ można przypisać do odpowiednich typów argumentów metody implementacyjnej, węzeł nie jest podnoszony. Typ węzła to zwracany typ metody implementowania.

  • Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła jest typem dopuszczalnym wartości null odpowiadającym zwracanym typowi metody implementowania:

    • left.Typ i right.Typ to oba typy wartości, z których co najmniej jeden może przyjmować wartość null, a odpowiadające im typy nie-null są równe odpowiadającym typom argumentów metody implementującej.
    • Typ zwracany przez metodę implementacji jest niemającym wartości null typem wartościowym.

Jeśli metoda implementowania to null:

  • Jeśli zarówno left.Typ, jak i right.Typ są niemające wartości null, węzeł nie zostanie podniesiony. Typ węzła jest typem wyniku wstępnie zdefiniowanego operatora dodawania.
  • Jeśli left. Typ i right. Typ oba mają wartość null, to węzeł jest podnoszony. Typ węzła to typ dopuszczający wartość null, który odpowiada typowi wyniku wstępnie zdefiniowanego operatora dodawania.

Dotyczy

Add(Expression, Expression, MethodInfo)

Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs

Tworzy obiekt reprezentujący operację BinaryExpression dodawania arytmetycznego, która nie ma sprawdzania przepełnienia. Można określić metodę implementowania.

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

Parametry

left
Expression

A Expression , aby ustawić właściwość równą Left .

right
Expression

A Expression , aby ustawić właściwość równą Right .

method
MethodInfo

A MethodInfo , aby ustawić właściwość równą Method .

Zwraca

WłaściwośćBinaryExpression, która ma właściwość równą NodeTypeAdd i Left, Right i właściwości Method ustawione na określone wartości.

Wyjątki

left lub right ma wartość null.

method nie null jest i metoda, która reprezentuje, zwraca voidwartość , nie static jest (Shared w Visual Basic) lub nie bierze dokładnie dwóch argumentów.

method jest null i operator dodawania nie jest zdefiniowany dla left. Wpisz i right. Typu.

Uwagi

Metoda Add zwraca BinaryExpression, którego właściwość Method jest ustawiona na metodę implementującą. Właściwość Type jest ustawiona na typ węzła. Jeśli węzeł zostanie podniesiony, zarówno właściwość IsLifted, jak i właściwość IsLiftedToNulltrue. W przeciwnym razie są to false. Właściwość Conversion jest null.

Poniższe informacje opisują metodę implementowania, typ węzła i informację, czy węzeł jest zniesiony.

Implementowanie metody

Następujące reguły określają wybraną metodę implementowania dla operacji:

  • Jeśli właściwość którejkolwiek z Type lub left reprezentuje typ zdefiniowany przez użytkownika, który przeciąża operator dodawania, wtedy metoda right reprezentująca tę operację jest metodą implementacyjną.
  • W przeciwnym razie, jeśli left.Type i right.Type są typami liczbowymi, metodą implementacji jest null.

Typ węzła i podniesiony w porównaniu z niepodniesionym

Jeśli metoda implementacji nie jest null:

  • Jeśli typy left.Typ i right.Typ można przypisać do odpowiednich typów argumentów metody implementacyjnej, węzeł nie jest podnoszony. Typ węzła to zwracany typ metody implementowania.

  • Jeśli spełnione są następujące dwa warunki, węzeł zostanie zniesiony, a typ węzła jest typem dopuszczalnym wartości null odpowiadającym zwracanym typowi metody implementowania:

    • left.Typ i right.Typ to oba typy wartości, z których co najmniej jeden może przyjmować wartość null, a odpowiadające im typy nie-null są równe odpowiadającym typom argumentów metody implementującej.
    • Typ zwracany przez metodę implementacji jest niemającym wartości null typem wartościowym.

Jeśli metoda implementowania to null:

  • Jeśli zarówno left.Typ, jak i right.Typ są niemające wartości null, węzeł nie zostanie podniesiony. Typ węzła jest typem wyniku wstępnie zdefiniowanego operatora dodawania.
  • Jeśli left. Typ i right. Typ oba mają wartość null, to węzeł jest podnoszony. Typ węzła to typ dopuszczający wartość null, który odpowiada typowi wyniku wstępnie zdefiniowanego operatora dodawania.

Dotyczy