Expression.Convert 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 UnaryExpression que representa uma operação de conversão de tipo.
Sobrecargas
| Name | Description |
|---|---|
| Convert(Expression, Type) |
Cria um UnaryExpression que representa uma operação de conversão de tipo. |
| Convert(Expression, Type, MethodInfo) |
Cria um UnaryExpression que representa uma operação de conversão para a qual o método de implementação é especificado. |
Convert(Expression, Type)
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
Cria um UnaryExpression que representa uma operação de conversão de tipo.
public:
static System::Linq::Expressions::UnaryExpression ^ Convert(System::Linq::Expressions::Expression ^ expression, Type ^ type);
public static System.Linq.Expressions.UnaryExpression Convert(System.Linq.Expressions.Expression expression, Type type);
static member Convert : System.Linq.Expressions.Expression * Type -> System.Linq.Expressions.UnaryExpression
Public Shared Function Convert (expression As Expression, type As Type) As UnaryExpression
Parâmetros
- expression
- Expression
E Expression para definir a Operand propriedade igual a .
Devoluções
A UnaryExpression que tem a NodeType propriedade igual a Convert e as Operand propriedades e Type definidas com os valores especificados.
Exceções
expression ou type é null.
Nenhum operador de conversão é definido entre expression. Tipo e type.
Exemplos
O exemplo de código seguinte mostra como criar uma expressão que representa uma operação de conversão de tipos.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a type conversion operation.
Expression convertExpr = Expression.Convert(
Expression.Constant(5.5),
typeof(Int16)
);
// Print out the expression.
Console.WriteLine(convertExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<Int16>>(convertExpr).Compile()());
// This code example produces the following output:
//
// Convert(5.5)
// 5
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a type conversion operation.
Dim convertExpr As Expression = Expression.Convert(
Expression.Constant(5.5),
GetType(Int16)
)
' Print the expression.
Console.WriteLine(convertExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Int16))(convertExpr).Compile()())
' This code example produces the following output:
'
' Convert(5.5)
' 5
Observações
A Method propriedade do resultado UnaryExpression é definida para o método de implementação. A propriedade IsLiftedToNull é false. Se o nó for elevado, IsLifted é true. Caso contrário, é false.
Método de Implementação
As seguintes regras determinam o método de implementação da operação:
Se algum deles
expression. Tipo outypeé um tipo definido pelo utilizador que define um operador de conversão implícito ou explícito, o MethodInfo que representa esse operador é o método de implementação.Caso contrário:
Se ambos
expression. Tipar etyperepresentar tipos numéricos ou booleanos, ou tipos de enumeração nulos ou não anuláveis, o método de implementação énull.Se algum deles
expression. Tipo outypeé um tipo de referência e existe uma conversão explícita de boxing, unboxing ou referência a partir deexpression. Tipem paratype, o método de implementação énull.
Levantado versus Não Levantado
Se o método de execução não for null:
Se
expression. O tipo é atribuível ao tipo de argumento do método de implementação e o tipo de retorno do método de implementação é atribuível atype, o nó não é elevado.Se um ou ambos os
expression. Tipo outypeé um tipo de valor nulo e os tipos correspondentes de valor não nulo são iguais ao tipo de argumento e ao tipo de retorno do método implementador, respetivamente, o nó é elevado.
Se o método de execução for null:
Se ambos
expression. Tipo etypesão não anuláveis, o nó não é elevado.Caso contrário, o nó é levantado.
Aplica-se a
Convert(Expression, Type, MethodInfo)
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
- Origem:
- UnaryExpression.cs
Cria um UnaryExpression que representa uma operação de conversão para a qual o método de implementação é especificado.
public:
static System::Linq::Expressions::UnaryExpression ^ Convert(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Convert(System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Convert(System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo? method);
static member Convert : System.Linq.Expressions.Expression * Type * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Convert (expression As Expression, type As Type, method As MethodInfo) As UnaryExpression
Parâmetros
- expression
- Expression
E Expression para definir a Operand propriedade igual a .
- method
- MethodInfo
A MethodInfo para definir a Method propriedade igual a .
Devoluções
A UnaryExpression que tem a NodeType propriedade igual a Convert e o Operand, Type, e Method propriedades definidas com os valores especificados.
Exceções
expression ou type é 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 um argumento.
Nenhum operador de conversão é definido entre expression. Tipo e type.
-ou-
expression. O tipo não é atribuível ao tipo de argumento do método representado por method.
-ou-
O tipo de retorno do método representado por method não é atribuível a type.
-ou-
expression. Tipo ou type é um tipo de valor nulo e o tipo correspondente de valor não nulo não é igual ao tipo de argumento ou ao tipo de retorno, respetivamente, do método representado por method.
Foi encontrado mais do que um método que corresponde à method descrição.
Observações
A Method propriedade do resultado UnaryExpression é definida para o método de implementação. A propriedade IsLiftedToNull é false. Se o nó for elevado, IsLifted é true. Caso contrário, é false.
Método de Implementação
As seguintes regras determinam o método de implementação da operação:
Se o método não
nullfor , é o método implementador. Deve representar um método não nulo,static(Sharedem Visual Basic) que requer um argumento.Caso contrário, se qualquer um
expressiondos . Tipo outypeé um tipo definido pelo utilizador que define um operador de conversão implícito ou explícito, o MethodInfo que representa esse operador é o método de implementação.Caso contrário:
Se ambos
expression. Tipar etyperepresentar tipos numéricos ou booleanos, ou tipos de enumeração nulos ou não anuláveis, o método de implementação énull.Se algum deles
expression. Tipo outypeé um tipo de referência e existe uma conversão explícita de boxing, unboxing ou referência a partir deexpression. Tipem paratype, o método de implementação énull.
Levantado versus Não Levantado
Se o método de execução não for null:
Se
expression. O tipo é atribuível ao tipo de argumento do método de implementação e o tipo de retorno do método de implementação é atribuível atype, o nó não é elevado.Se um ou ambos .
expressionTipo outypesão um tipo de valor nulo e os tipos correspondentes de valor não anulável são iguais ao tipo de argumento e ao tipo de retorno do método implementador, respetivamente, o nó é elevado.
Se o método de execução for null:
Se ambos
expression. Tipo etypesão não anuláveis, o nó não é elevado.Caso contrário, o nó é levantado.