Conversão de tipos generalizada
A.NET Framework fornece dois mecanismos para a conversão de tipos de dados definidos pelo usuário (tipos personalizados) para outros tipos de dados a seguir:
Definindo um conversor de tipo para um tipo personalizado, estendendo a TypeConverter classe e associando o conversor de tipo com o tipo por meio de um TypeConverterAttribute atributo.
Implementando o IConvertible interface em um tipo personalizado.
A tabela a seguir destaca as diferenças entre esses dois mecanismos.
Dica
Suporte em tempo de design pode ser fornecida para um tipo personalizado somente se ele tiver um conversor de tipo definido para ela.
Conversão usando TypeConverter |
Conversão usando IConvertible |
||||
---|---|---|---|---|---|
Pode ser usado em tempo de design e em tempo de execução. |
Pode ser usado apenas em tempo de execução. |
||||
Usa a reflexão; Portanto, é mais lento do que a conversão ativada por IConvertible. |
Não use a reflexão. |
||||
Permite que as conversões de tipo bidirecional de tipo personalizado para outros tipos de dados e de outros tipos de dados para o tipo personalizado. Por exemplo, um TypeConverter definido para MyType permite conversões de MyType para seqüência de caracteres e de seqüência de caracteres para MyType. |
Permite a conversão de um tipo personalizado para outros tipos de dados, mas não a partir de outros tipos de dados para o tipo personalizado. |
||||
|
|
Para obter detalhes sobre o uso de conversores de tipo para realizar conversões, consulte TypeConverter. Para obter informações sobre como implementar um conversor de tipos para fornecer suporte de tempo de design para um tipo personalizado, consulte a implementação de um conversor de tipo.
Consulte também
Tarefas
Como implementar um conversor de tipos