Conversione di tipi generalizzata
In .NET Framework sono forniti i seguenti due meccanismi per la conversione dei tipi di dati definiti dall'utente (o tipi personalizzati) ad altri tipi di dati.
Definizione di un convertitore di tipi per un tipo personalizzato mediante l'estensione della classe System.ComponentModel.TypeConverter e l'associazione del convertitore di tipi al tipo tramite un attributo System.ComponentModel.TypeConverterAttribute.
Implementazione dell'interfaccia System.IConvertible su un tipo personalizzato.
Nella tabella che segue sono messe in risalto le differenze tra questi due meccanismi.
Nota
È possibile fornire supporto per un tipo personalizzato in fase di progettazione solo se per tale tipo è stato definito un convertitore di tipi.
Conversione mediante TypeConverter |
Conversione mediante IConvertible |
---|---|
Utilizzabile sia in fase di progettazione che in fase di esecuzione. |
Utilizzabile solo in fase di esecuzione. |
Utilizza la reflection ed è quindi più lenta della conversione fornita da IConvertible. |
Non utilizza la reflection. |
Consente di eseguire conversioni a due vie: dal tipo personalizzato ad altri tipi di dati e da altri tipi di dati al tipo personalizzato. Un TypeConverter definito per Tipo, ad esempio, consente di operare conversioni da Tipo a Stringa e da Stringa a Tipo. |
Consente la conversione da un tipo personalizzato ad altri tipi di dati, ma non da altri tipi di dati al tipo personalizzato. |
Nota
Il TypeConverter definito per un tipo viene implementato all'esterno del tipo e ad esso associato mediante l'applicazione di un attributo TypeConverterAttribute.
|
Nota
IConvertible viene implementata da un tipo personalizzato.Per convertire un tipo è necessario che un utente di tale tipo richiami sul tipo stesso un metodo di conversione (del contratto IConvertible).
|
Per informazioni dettagliate sull'utilizzo di convertitori di tipi per l'esecuzione di conversioni, vedere System.ComponentModel.TypeConverter. Per informazioni sull'implementazione di un convertitore di tipi per fornire supporto in fase di progettazione per un tipo personalizzato, vedere Implementazione di un convertitore di tipi.
Vedere anche
Attività
Procedura: implementare un convertitore di tipi