Conversione di tipi generalizzata

Aggiornamento: novembre 2007

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.

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

Altre risorse

Estensione del supporto in fase di progettazione