Conversión de tipos generalizada

Actualización: noviembre 2007

.NET Framework proporciona los dos mecanismos siguientes para convertir tipos de datos definidos por el usuario (tipos personalizados) en otros tipos de datos:

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.

Nota:

Un TypeConverter se implementa para un tipo fuera de éste y se asocia al tipo mediante la aplicación de un atributo TypeConverterAttribute.

Nota:

La implementación de IConvertible la realiza un tipo personalizado. Para convertir un tipo, un usuario de ese tipo llama a un método de conversión (del contrato IConvertible) en el tipo.

Para obtener información detallada sobre cómo utilizar los convertidores de tipos para realizar conversiones, vea System.ComponentModel.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

Otros recursos

Ampliar compatibilidad en tiempo de diseño