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 System.ComponentModel.TypeConverter et en associant le convertisseur de type au type grâce à un attribut System.ComponentModel.TypeConverterAttribute.
Implémentation de l'interface System.IConvertible sur un type personnalisé.
Le tableau suivant met en évidence les différences entre ces deux mécanismes.
[!REMARQUE]
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é. |
Remarque
TypeConverter d'un type est implémenté à l'extérieur du type et lui est associé en appliquant un attribut TypeConverterAttribute.
|
Remarque
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 System.ComponentModel.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