Conversión de tipos generalizada
.NET Framework proporciona los dos mecanismos siguientes para convertir tipos de datos definidos por el usuario (tipos personalizados) en otros tipos de datos:
Definir un convertidor de tipos para un tipo personalizado extendiendo la clase TypeConverter y asociando el convertidor de tipos al tipo mediante un atributo TypeConverterAttribute.
Implementar la interfaz IConvertible en un tipo personalizado.
En la tabla siguiente se resaltan las diferencias entre los dos mecanismos.
Nota
Se puede proporcionar compatibilidad en tiempo de diseño para un tipo personalizado sólo si se ha definido un convertidor de tipos para éste.
Conversión mediante TypeConverter |
Conversión mediante IConvertible |
||||
---|---|---|---|---|---|
Se puede utilizar en tiempo de diseño y en tiempo de ejecución. |
Sólo se puede utilizar en tiempo de ejecución. |
||||
Usa la reflexión; por tanto, es más lenta que la conversión mediante IConvertible. |
No utiliza la reflexión. |
||||
Permite realizar conversiones bidireccionales, es decir, convertir el tipo personalizado en otros tipos de datos y convertir otros tipos de datos en el tipo personalizado. Por ejemplo, un objeto TypeConverter definido para MiTipo permite convertir MiTipo en String y String en MiTipo. |
Permite convertir el tipo personalizado en otros tipos de datos, pero no otros tipos de datos en el tipo personalizado. |
||||
|
|
Para obtener información detallada sobre cómo utilizar los convertidores de tipos para realizar conversiones, vea TypeConverter. Para obtener información sobre cómo se implementa un convertidor de tipos con el fin de proporcionar funcionalidad en tiempo de diseño para un tipo personalizado, vea Implementar un convertidor de tipos.
Vea también
Tareas
Cómo: Implementar un convertidor de tipos