Partager via


Expression.ConvertChecked Méthode

Définition

Crée un UnaryExpression qui représente une opération de conversion qui lève une exception en cas de dépassement du type cible.

Surcharges

ConvertChecked(Expression, Type)

Crée un UnaryExpression qui représente une opération de conversion qui lève une exception en cas de dépassement du type cible.

ConvertChecked(Expression, Type, MethodInfo)

Crée un UnaryExpression qui représente une opération de conversion qui lève une exception en cas de dépassement du type cible et pour lequel la méthode d'implémentation est spécifiée.

ConvertChecked(Expression, Type)

Source:
UnaryExpression.cs
Source:
UnaryExpression.cs
Source:
UnaryExpression.cs

Crée un UnaryExpression qui représente une opération de conversion qui lève une exception en cas de dépassement du type cible.

public:
 static System::Linq::Expressions::UnaryExpression ^ ConvertChecked(System::Linq::Expressions::Expression ^ expression, Type ^ type);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type);
static member ConvertChecked : System.Linq.Expressions.Expression * Type -> System.Linq.Expressions.UnaryExpression
Public Shared Function ConvertChecked (expression As Expression, type As Type) As UnaryExpression

Paramètres

expression
Expression

Expression auquel la propriété Operand doit être égale.

type
Type

Type auquel la propriété Type doit être égale.

Retours

UnaryExpression dont la propriété NodeType est égale à ConvertChecked 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.

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 ou type 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 et type 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 est null.

    • Si l’un ou l’autre . expression Le type ou type est un type de référence et une conversion de boxe, d’unboxing ou de référence explicite existe à partir de expression. Tapez à type, la méthode d’implémentation est null.

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 ou type 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 et type ne sont pas nullables, le nœud n’est pas levé.

  • Sinon, le nœud est levé.

S’applique à

ConvertChecked(Expression, Type, MethodInfo)

Source:
UnaryExpression.cs
Source:
UnaryExpression.cs
Source:
UnaryExpression.cs

Crée un UnaryExpression qui représente une opération de conversion qui lève une exception en cas de dépassement du type cible et pour lequel la méthode d'implémentation est spécifiée.

public:
 static System::Linq::Expressions::UnaryExpression ^ ConvertChecked(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo? method);
static member ConvertChecked : System.Linq.Expressions.Expression * Type * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function ConvertChecked (expression As Expression, type As Type, method As MethodInfo) As UnaryExpression

Paramètres

expression
Expression

Expression auquel la propriété Operand doit être égale.

type
Type

Type auquel la propriété Type doit être égale.

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

Retours

UnaryExpression dont la propriété NodeType est égale à ConvertChecked 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 ( staticShared en Visual Basic) qui prend un argument.

  • Sinon, si l’un ou l’autre expression. Type ou type 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 et type 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 est null.

    • Si l’un ou l’autre . expression Le type ou type est un type de référence et une conversion de boxe, d’unboxing ou de référence explicite existe à partir de expression. Tapez à type, la méthode d’implémentation est null.

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 ou type 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 et type ne sont pas nullables, le nœud n’est pas levé.

  • Sinon, le nœud est levé.

S’applique à