Expression.Convert Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un UnaryExpression qui représente une opération de conversion de type.
Surcharges
Convert(Expression, Type) |
Crée un UnaryExpression qui représente une opération de conversion de type. |
Convert(Expression, Type, MethodInfo) |
Crée un UnaryExpression qui représente une opération de conversion pour laquelle la méthode d'implémentation est spécifiée. |
Convert(Expression, Type)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crée un UnaryExpression qui représente une opération de conversion de type.
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
Paramètres
- expression
- Expression
Expression auquel la propriété Operand doit être égale.
Retours
UnaryExpression dont la propriété NodeType est égale à Convert et dont les propriétés Operand et Type ont les valeurs spécifiées.
Exceptions
expression
ou type
est null
.
Aucun opérateur de conversion n'est défini entre expression
.Type et type
.
Exemples
L’exemple de code suivant montre comment créer une expression qui représente une opération de conversion de type.
// 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
Remarques
La Method propriété du résultat UnaryExpression est définie sur la méthode d’implémentation. La propriété IsLiftedToNull a la valeur false
. Si le nœud est levé, IsLifted est true
. Sinon, c’est false
.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation de l’opération :
Si l’un ou l’autre .
expression
Type outype
est un type défini par l’utilisateur qui définit un opérateur de conversion implicite ou explicite, MethodInfo qui représente cet opérateur est la méthode d’implémentation.Sinon :
Si les deux .
expression
Tapez ettype
représentent des types numériques ou booléens, ou des types d’énumération nullables ou non nullables, la méthode d’implémentation estnull
.Si l’un ou l’autre .
expression
Le type outype
est un type de référence et une conversion de boxe, d’unboxing ou de référence explicite existe à partir deexpression
. Tapez àtype
, la méthode d’implémentation estnull
.
Lifted versus Non Lifted
Si la méthode d’implémentation n’est pas null
:
Si
expression
. Type est assignable au type d’argument de la méthode d’implémentation et le type de retour de la méthode d’implémentation est assignable àtype
, le nœud n’est pas levé.Si l’un ou les deux de
expression
. Type outype
est un type de valeur nullable et les types de valeurs non nullables correspondants sont égaux au type d’argument et au type de retour de la méthode d’implémentation, le nœud est supprimé.
Si la méthode d’implémentation est null
:
Si les deux .
expression
Tapez ettype
ne sont pas nullables, le nœud n’est pas levé.Sinon, le nœud est levé.
S’applique à
Convert(Expression, Type, MethodInfo)
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
- Source:
- UnaryExpression.cs
Crée un UnaryExpression qui représente une opération de conversion pour laquelle la méthode d'implémentation est spécifiée.
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
Paramètres
- expression
- Expression
Expression auquel la propriété Operand doit être égale.
- method
- MethodInfo
MethodInfo auquel la propriété Method doit être égale.
Retours
UnaryExpression dont la propriété NodeType est égale à Convert et dont les propriétés Operand, Type et Method ont les valeurs spécifiées.
Exceptions
expression
ou type
est null
.
method
n'est pas null
et la méthode représentée retourne void
, n'est pas static
(Shared
en Visual Basic) ou ne prend pas un argument exactement.
Aucun opérateur de conversion n'est défini entre expression
.Type et type
.
- ou -
expression
.Type ne peut pas être assigné au type d'argument de la méthode représentée par method
.
- ou -
Le type de retour de la méthode représentée par method
ne peut pas être assigné à type
.
- ou -
expression
.Type ou type
est un type valeur Nullable et le type valeur autre que Nullable correspondant n'est pas égal au type d'argument ou au type de retour, respectivement, de la méthode représentée par method
.
Plusieurs méthodes correspondant à la description method
ont été trouvées.
Remarques
La Method propriété du résultat UnaryExpression est définie sur la méthode d’implémentation. La propriété IsLiftedToNull a la valeur false
. Si le nœud est levé, IsLifted est true
. Sinon, c’est false
.
Implémentation de la méthode
Les règles suivantes déterminent la méthode d’implémentation de l’opération :
Si la méthode n’est pas
null
, il s’agit de la méthode d’implémentation. Il doit représenter une méthode non void (static
Shared
en Visual Basic) qui prend un argument.Sinon, si l’un ou l’autre
expression
. Type outype
est un type défini par l’utilisateur qui définit un opérateur de conversion implicite ou explicite, MethodInfo qui représente cet opérateur est la méthode d’implémentation.Sinon :
Si les deux .
expression
Tapez ettype
représentent des types numériques ou booléens, ou des types d’énumération nullables ou non nullables, la méthode d’implémentation estnull
.Si l’un ou l’autre .
expression
Le type outype
est un type de référence et une conversion de boxe, d’unboxing ou de référence explicite existe à partir deexpression
. Tapez àtype
, la méthode d’implémentation estnull
.
Lifted versus Non Lifted
Si la méthode d’implémentation n’est pas null
:
Si
expression
. Type est assignable au type d’argument de la méthode d’implémentation et le type de retour de la méthode d’implémentation est assignable àtype
, le nœud n’est pas levé.Si ou les deux de
expression
. Type outype
sont un type de valeur nullable et les types de valeurs non nullables correspondants sont égaux au type d’argument et au type de retour de la méthode d’implémentation respectivement, le nœud est supprimé.
Si la méthode d’implémentation est null
:
Si les deux .
expression
Tapez ettype
ne sont pas nullables, le nœud n’est pas levé.Sinon, le nœud est levé.