Expression.Convert Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un objeto UnaryExpression que representa una operación de conversión de tipos.
Sobrecargas
Convert(Expression, Type) |
Crea un objeto UnaryExpression que representa una operación de conversión de tipos. |
Convert(Expression, Type, MethodInfo) |
Crea un objeto UnaryExpression que representa la operación de conversión para la que se especifica el método de implementación. |
Convert(Expression, Type)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crea un objeto UnaryExpression que representa una operación de conversión de tipos.
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
Objeto Expression en el que se va a establecer la propiedad Operand.
Devoluciones
UnaryExpression cuya propiedad NodeType es Convert y cuyas propiedades Operand y Type se establecen en los valores especificados.
Excepciones
expression
o type
es null
.
No hay ningún operador de conversión definido entre expression
.Type y type
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo crear una expresión que representa una operación de conversión 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
Comentarios
La Method propiedad del resultante UnaryExpression se establece en el método de implementación. La propiedad IsLiftedToNull es false
. Si se levanta el nodo, IsLifted es true
. De lo contrario, es false
.
Método de implementación
Las reglas siguientes determinan el método de implementación para la operación:
Si es .
expression
El tipo otype
es un tipo definido por el usuario que define un operador de conversión implícito o explícito, que MethodInfo representa ese operador es el método de implementación.De lo contrario:
Si ambos
expression
. Escriba ytype
represente tipos numéricos o booleanos, o tipos de enumeración que aceptan valores NULL o que no aceptan valores NULL, el método de implementación esnull
.Si es .
expression
El tipo otype
es un tipo de referencia y existe una conversión boxing explícita, unboxing o reference deexpression
. Escriba entype
, el método de implementación esnull
.
Levantada frente a no levantada
Si el método de implementación no null
es :
Si
expression
. El tipo se puede asignar al tipo de argumento del método de implementación y el tipo de valor devuelto del método de implementación se puede asignar atype
, el nodo no se levanta.Si uno o ambos de
expression
. El tipo otype
es un tipo de valor que acepta valores NULL y los tipos de valor que no aceptan valores NULL correspondientes son iguales al tipo de argumento y el tipo de valor devuelto del método de implementación, respectivamente, se levanta el nodo.
Si el método de implementación es null
:
Si ambos
expression
. El tipo ytype
no aceptan valores NULL, el nodo no se levanta.De lo contrario, se levanta el nodo.
Se aplica a
Convert(Expression, Type, MethodInfo)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crea un objeto UnaryExpression que representa la operación de conversión para la que se especifica el método de implementación.
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
Objeto Expression en el que se va a establecer la propiedad Operand.
- method
- MethodInfo
MethodInfo en el que se va a establecer la propiedad Method.
Devoluciones
UnaryExpression cuya propiedad NodeType es Convert y Operand, Type y Method se establecen en los valores especificados.
Excepciones
expression
o type
es null
.
method
no es null
y el método que representa devuelve void
, no es static
(Shared
en Visual Basic) o no toma exactamente un argumento.
No hay ningún operador de conversión definido entre expression
.Type y type
.
o bien
expression
.Type no se puede asignar al tipo de argumento del método representado por method
.
o bien
El tipo de valor devuelto del método representado por method
no se puede asignar a type
.
o bien
expression
.Type o type
es un tipo de valor que acepta valores null y el correspondiente tipo de valor que no acepta valores null no es igual que el tipo de argumento o el tipo de valor devuelto, respectivamente, del método representado por method
.
Se ha encontrado más de un método que coincide con la descripción de method
.
Comentarios
La Method propiedad del resultante UnaryExpression se establece en el método de implementación. La propiedad IsLiftedToNull es false
. Si se levanta el nodo, IsLifted es true
. De lo contrario, es false
.
Método de implementación
Las reglas siguientes determinan el método de implementación para la operación:
Si el método no
null
es , es el método de implementación. Debe representar un método que no sea void,static
(Shared
en Visual Basic) que tome un argumento.De lo contrario, si es .
expression
El tipo otype
es un tipo definido por el usuario que define un operador de conversión implícito o explícito, que MethodInfo representa ese operador es el método de implementación.De lo contrario:
Si ambos
expression
. Escriba ytype
represente tipos numéricos o booleanos, o tipos de enumeración que aceptan valores NULL o que no aceptan valores NULL, el método de implementación esnull
.Si es .
expression
El tipo otype
es un tipo de referencia y existe una conversión boxing explícita, unboxing o reference deexpression
. Escriba entype
, el método de implementación esnull
.
Levantada frente a no levantada
Si el método de implementación no null
es :
Si
expression
. El tipo se puede asignar al tipo de argumento del método de implementación y el tipo de valor devuelto del método de implementación se puede asignar atype
, el nodo no se levanta.Si o ambos de
expression
. El tipo otype
son un tipo de valor que acepta valores NULL y los tipos de valor que no aceptan valores NULL correspondientes son iguales al tipo de argumento y el tipo de valor devuelto del método de implementación, respectivamente, se levanta el nodo.
Si el método de implementación es null
:
Si ambos
expression
. El tipo ytype
no aceptan valores NULL, el nodo no se levanta.De lo contrario, se levanta el nodo.