Expression.Divide Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria um BinaryExpression que representa uma operação de divisão aritmética.
Sobrecargas
| Name | Description |
|---|---|
| Divide(Expression, Expression) |
Cria um BinaryExpression que representa uma operação de divisão aritmética. |
| Divide(Expression, Expression, MethodInfo) |
Cria um BinaryExpression que representa uma operação de divisão aritmética. O método de implementação pode ser especificado. |
Divide(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 divisão aritmética.
public:
static System::Linq::Expressions::BinaryExpression ^ Divide(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Divide(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Divide : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Divide (left As Expression, right As Expression) As BinaryExpression
Parâmetros
- left
- Expression
Um Expression para definir a Left propriedade para.
- right
- Expression
Um Expression para definir a Right propriedade para.
Devoluções
A BinaryExpression que tem a NodeType propriedade igual a Divide e as Left propriedades e Right definidas com os valores especificados.
Exceções
left ou right é null.
O operador de divisão não está definido para left. Tipo e right. Tipo.
Exemplos
O seguinte exemplo de código mostra como criar uma expressão que divide o seu primeiro argumento pelo segundo argumento.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression divides its first argument by its second argument.
// Both arguments must be of the same type.
Expression divideExpr = Expression.Divide(
Expression.Constant(10.0),
Expression.Constant(4.0)
);
// Print out the expression.
Console.WriteLine(divideExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
Expression.Lambda<Func<double>>(divideExpr).Compile()());
// This code example produces the following output:
//
// (10/4)
// 2.5
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression divides its first argument by its second argument.
' Both arguments must be of the same type.
Dim divideExpr As Expression = Expression.Divide(
Expression.Constant(10.0),
Expression.Constant(4.0)
)
' Print the expression.
Console.WriteLine(divideExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
Expression.Lambda(Of Func(Of Double))(divideExpr).Compile()())
' This code example produces the following output:
'
' (10/4)
' 2.5
Observações
O resultado BinaryExpression tem a Method propriedade definida para o método de implementação. 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 Implementação
As seguintes regras determinam o método de implementação da operação:
Se a Type propriedade de ou
leftrightrepresenta um tipo definido pelo utilizador que sobrecarrega o operador de divisão, o MethodInfo que representa esse método é o método de implementação.Caso contrário, se
left. Tipo eright. Tipo são tipos numéricos, o método de implementação énull.
Tipo de Nó e Elevado versus Não Elevado
Se o método de execução não for null:
Se
left. Tipo eright. 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 eright. 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 eright. Tipo são ambos não-anuláveis, o nó não é levantado. O tipo do nó é o tipo de resultado do operador de divisão pré-definido.Se
left. Tipo eright. 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 divisão pré-definido.
Aplica-se a
Divide(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 divisão aritmética. O método de implementação pode ser especificado.
public:
static System::Linq::Expressions::BinaryExpression ^ Divide(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Divide(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Divide(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member Divide : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Divide (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression
Parâmetros
- left
- Expression
E Expression para definir a Left propriedade igual a .
- right
- Expression
E 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 Divide e o Left, Right, e Method propriedades definidas com 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 divisão não está definido para left. Tipo e right. Tipo.
Observações
O resultado BinaryExpression tem a Method propriedade definida para o método de implementação. 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 Implementação
As seguintes regras determinam o método de implementação da operação:
Se
methodnão fornulle representar um método não nulo,static(Sharedem Visual Basic) que utiliza dois argumentos, é o método de implementação para o nó.Caso contrário, se a Type propriedade de ou
leftrightrepresenta um tipo definido pelo utilizador que sobrecarrega o operador de divisão, o MethodInfo que representa esse método é o método de implementação.Caso contrário, se
left. Tipo eright. Tipo são tipos numéricos, o método de implementação énull.
Tipo de Nó e Elevado versus Não Elevado
Se o método de execução não for null:
Se
left. Tipo eright. 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 eright. 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 eright. Tipo são ambos não-anuláveis, o nó não é levantado. O tipo do nó é o tipo de resultado do operador de divisão pré-definido.Se
left. Tipo eright. 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 divisão pré-definido.