Expression.Add Método

Definição

Cria um BinaryExpression que representa uma operação de adição aritmética que não tem verificação de overflow.

Sobrecargas

Name Descrição
Add(Expression, Expression)

Cria um BinaryExpression que representa uma operação de adição aritmética que não tem verificação de overflow.

Add(Expression, Expression, MethodInfo)

Cria um BinaryExpression que representa uma operação de adição aritmética que não tem verificação de overflow. O método de implementação pode ser especificado.

Add(Expression, Expression)

Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs

Cria um BinaryExpression que representa uma operação de adição aritmética que não tem verificação de overflow.

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

Parâmetros

left
Expression

A Expression para definir a Left propriedade igual a .

right
Expression

A Expression para definir a Right propriedade igual a .

Devoluções

A BinaryExpression que tem a NodeType propriedade igual a Add e as Left propriedades e Right definidas com os valores especificados.

Exceções

left ou right é null.

O operador de adição não está definido para left. Tipo e right. Tipo.

Exemplos

O exemplo de código seguinte mostra como criar uma expressão que soma dois inteiros.

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

Observações

O método Add retorna um BinaryExpression que tem a propriedade Method definida no método que a implementa. A Type propriedade é definida como o tipo do nó. Se o nó for levantado, ambas as propriedades IsLifted e IsLiftedToNull são true. Caso contrário, são false. A propriedade Conversion é null.

As informações a seguir descrevem o método de implementação, o tipo de nó e se um nó é levantado.

Método de execução

As regras a seguir determinam o método de implementação selecionado para a operação:

  • Se a propriedade de um dos tipos representados por Type ou left for definida pelo usuário e sobrecarregar o operador de adição, right que representa esse método será o método responsável pela implementação.
  • Caso contrário, se left. Tipo e right. Tipo são tipos numéricos, o método de implementação é null.

Tipo de nó e tipos elevados versus tipos não elevados

Se o método de execução não for null:

  • Se left. Tipo e right. Tipo são atribuíveis aos tipos de argumento correspondentes do método de implementação, o nó não é levantado. O tipo do nó é o tipo de retorno do método de implementação.

  • Se as duas condições a seguir forem satisfeitas, o nó é levantado e o tipo do nó é o tipo anulável que corresponde ao tipo de retorno do método de implementação:

    • left. Tipo e right. Tipo são ambos os tipos de valor dos quais pelo menos um é anulável e os tipos não anuláveis correspondentes são iguais aos tipos de argumento correspondentes do método de implementação.
    • O tipo de retorno do método de implementação é um tipo de valor não anulável.

Se o método de execução for null:

  • Se left. Tipo e right. Tipo são ambos não-anuláveis, o nó não é levantado. O tipo do nó é o tipo de resultado do operador de adição predefinido.
  • Se left. Tipo e right. Tipo são ambos anuláveis, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador de adição predefinido.

Aplica-se a

Add(Expression, Expression, MethodInfo)

Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs
Origem:
BinaryExpression.cs

Cria um BinaryExpression que representa uma operação de adição aritmética que não tem verificação de overflow. O método de implementação pode ser especificado.

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

Parâmetros

left
Expression

A Expression para definir a Left propriedade igual a .

right
Expression

A Expression para definir a Right propriedade igual a .

method
MethodInfo

A MethodInfo para definir a Method propriedade igual a .

Devoluções

A BinaryExpression que tem a NodeType propriedade igual a Add e a Left, Right e Method propriedades definidas para os valores especificados.

Exceções

left ou right é null.

method não é null e o método que representa retorna void, não é static (Shared em Visual Basic), ou não toma exatamente dois argumentos.

method é null e o operador de adição não está definido para left. Tipo e right. Tipo.

Observações

O método Add retorna um BinaryExpression que tem a propriedade Method definida no método que a implementa. A Type propriedade é definida como o tipo do nó. Se o nó for levantado, ambas as propriedades IsLifted e IsLiftedToNull são true. Caso contrário, são false. A propriedade Conversion é null.

As informações a seguir descrevem o método de implementação, o tipo de nó e se um nó é levantado.

Método de execução

As regras a seguir determinam o método de implementação selecionado para a operação:

  • Se a propriedade de um dos tipos representados por Type ou left for definida pelo usuário e sobrecarregar o operador de adição, right que representa esse método será o método responsável pela implementação.
  • Caso contrário, se left. Tipo e right. Tipo são tipos numéricos, o método de implementação é null.

Tipo de nó e tipos elevados versus tipos não elevados

Se o método de execução não for null:

  • Se left. Tipo e right. Tipo são atribuíveis aos tipos de argumento correspondentes do método de implementação, o nó não é levantado. O tipo do nó é o tipo de retorno do método de implementação.

  • Se as duas condições a seguir forem satisfeitas, o nó é levantado e o tipo do nó é o tipo anulável que corresponde ao tipo de retorno do método de implementação:

    • left. Tipo e right. Tipo são ambos os tipos de valor dos quais pelo menos um é anulável e os tipos não anuláveis correspondentes são iguais aos tipos de argumento correspondentes do método de implementação.
    • O tipo de retorno do método de implementação é um tipo de valor não anulável.

Se o método de execução for null:

  • Se left. Tipo e right. Tipo são ambos não-anuláveis, o nó não é levantado. O tipo do nó é o tipo de resultado do operador de adição predefinido.
  • Se left. Tipo e right. Tipo são ambos anuláveis, o nó é levantado. O tipo do nó é o tipo anulável que corresponde ao tipo de resultado do operador de adição predefinido.

Aplica-se a