Conversione mediante System.Convert

La classe System.Convert fornisce un insieme completo di metodi per le conversioni supportate. Mediante questa classe è possibile eseguire conversioni indipendenti dal linguaggio, applicabili cioè a tutti i linguaggi destinati al Common Language Runtime. Mentre in linguaggi diversi vengono utilizzate tecniche differenti per la conversione dei tipi di dati, con la classe Convert tutte le conversioni comuni possono essere effettuate in un formato generico. Questa classe consente di eseguire conversioni di restrizione, così come conversioni verso tipi di dati non correlati. Sono supportate, ad esempio, conversioni da tipi String a tipi numerici, da tipi DateTime a tipi String e da tipi String a tipi Boolean. Per l'elenco completo delle conversioni disponibili, vedere l'elenco dei metodi nella classe Convert. La classe Convert esegue conversioni in modalità controllata e genera un'eccezione se la conversione non è supportata. Nella maggior parte dei casi l'eccezione è di tipo OverflowException. Per l'elenco delle conversioni supportate, vedere la sezione Tabelle di conversione dei tipi.

È possibile passare il valore che si desidera convertire a uno dei metodi appropriati della classe Convert e inizializzare il valore restituito su una nuova variabile. Nel codice seguente, ad esempio, viene utilizzata la classe Convert per convertire un valore String in un valore Boolean.

Dim MyString As String = "true"
Dim MyBool As Boolean = Convert.ToBoolean(MyString)
' MyBool has the value of True.
[C#]
string MyString = "true";
bool MyBool = Convert.ToBoolean(MyString);
// MyBool has the value of True.

La classe Convert risulta utile anche nel caso in cui si desideri convertire una stringa in un valore numerico. Nell'esempio di codice seguente, una stringa contenente caratteri numerici viene convertita in un valore Int32.

Dim newString As String = "123456789"
Dim MyInt As Integer = Convert.ToInt32(newString)
' MyInt has the value of 123456789.
[C#]
string newString = "123456789";
int MyInt = Convert.ToInt32(newString);
// MyInt has the value of 123456789.

La classe Convert consente inoltre di eseguire una conversione di restrizione che non può essere eseguita in modo implicito nel linguaggio utilizzato. Nell'esempio seguente viene illustrata una conversione di restrizione dal valore Int64 al valore più piccolo Int32 mediante il metodo Convert.ToInt32.

Dim MyInt64 As Int64 = 123456789
Dim MyInt As Integer = Convert.ToInt32(MyInt64)
' MyInt has the value of 123456789.
[C#]
Int64 MyInt64 = 123456789;
int MyInt = Convert.ToInt32(MyInt64);
// MyInt has the value of 123456789.

In alcuni casi, quando si esegue una conversione di restrizione mediante la classe Convert, viene modificato il valore dell'elemento convertito. Nell'esempio seguente, il tipo Double viene convertito nel valore Int32. In questo caso, per completare la conversione il valore viene arrotondato da 42.72 a 43.

Dim MyDouble As Double = 42.72
Dim MyInt As Integer = Convert.ToInt32(MyDouble)
' MyInt has the value of 43.
[C#]
Double MyDouble = 42.72;
int MyInt = Convert.ToInt32(MyDouble);
// MyInt has the value of 43.

Vedere anche

Conversione di tipi | Conversione esplicita