Conversion de type généralisée

Le .NET Framework fournit les deux mécanismes suivants pour la conversion de types de données définis par l'utilisateur (types personnalisés) en d'autres types de données :

  • Définition d'un convertisseur de type pour un type personnalisé en étendant la classe TypeConverter et en associant le convertisseur de type au type grâce à un attribut TypeConverterAttribute.

  • Implémentation de l'interface IConvertible sur un type personnalisé.

Le tableau suivant met en évidence les différences entre ces deux mécanismes.

Notes

La prise en charge au moment du design ne peut être fournie pour un type personnalisé que si un convertisseur de type est défini pour ce dernier.

Conversion à l'aide de TypeConverter

Conversion à l'aide de IConvertible

Peut être utilisée à la fois au moment du design et au moment de l'exécution.

Ne peut être utilisée qu'au moment de l'exécution.

Utilise la réflexion et est donc plus lente que la conversion à l'aide de IConvertible.

N'utilise pas la réflexion.

Permet les conversions de type bilatérales du type personnalisé en d'autres types de données, et d'autres types de données en type personnalisé. Par exemple, TypeConverter défini pour MyType permet les conversions de MyType en String et de String en MyType.

Permet la conversion d'un type personnalisé en d'autres types de données, mais pas d'autres types de données en type personnalisé.

RemarqueRemarque

TypeConverter d'un type est implémenté à l'extérieur du type et lui est associé en appliquant un attribut TypeConverterAttribute.

RemarqueRemarque

IConvertible est implémenté par un type personnalisé.Pour convertir un type, un utilisateur du type appelle une méthode de conversion (du contrat IConvertible) sur le type.

Pour plus d'informations sur l'utilisation de convertisseurs de type dans le cadre de conversions, consultez TypeConverter. Pour plus d'informations sur l'implémentation d'un convertisseur de type afin de fournir la prise en charge au moment du design d'un type personnalisé, consultez Implémentation d'un convertisseur de type.

Voir aussi

Tâches

Comment : implémenter un convertisseur de type

Autres ressources

Extension de la prise en charge au moment du design