Conversão de tipo generalizado
O .NET estrutura fornece os seguintes dois mecanismos para a conversão de tipos de dados definidos pelo usuário (tipos personalizados) para outros tipos de dados:
Definindo um conversor de tipo para um tipo personalizado, estendendo o System.ComponentModel.TypeConverter classe e associar o conversor de tipo tipo por meio de um System.ComponentModel.TypeConverterAttribute atributo.
Implementando o System.IConvertible interface em um tipo personalizado.
A tabela a seguir destaca as diferenças entre esses dois mecanismos.
Observação: |
---|
Suporte em time 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 time de design e time de execução. |
Pode ser usado apenas em time de execução. |
Usa a reflexão e, portanto, é mais lento do que a conversão ativada por IConvertible. |
Não usa a reflexão. |
Permite que as conversões de tipo bidirecional do tipo personalizado em 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 em Seqüência de caracteres and from Seqüência de caracteres para MyType. |
Permite a conversão de um tipo personalizado em outros tipos de dados, mas não de outros tipos de dados para o tipo personalizado. |
Observação:
A TypeConverter para um tipo é implementado fora o tipo e associado ao tipo, aplicando um TypeConverterAttribute atributo.
|
Observação:
IConvertible é implementado por um tipo personalizado.Para converter um tipo, um usuário do tipo invoca um método de conversão (do IConvertible contrato) no tipo.
|
Para obter detalhes sobre o uso de conversores de tipo para realizar conversões, consulte System.ComponentModel.TypeConverter. Para obter informações sobre como implementar um conversor de tipos para fornecer suporte de time de design de um tipo personalizado, consulte Implementar um conversor de tipo.
Consulte também
Tarefas
Como: Implementar um conversor de tipo