In VB.NET esistono due keyword che permettono di ottenere la conversione tra i tipi di dato, entrambe caratterizzate dalla stessa sintassi che prevede due argomenti: il primo è l'oggetto da convertire, il secondo è il tipo di dato di destinazione.
Apparentemente tra i due metodi di conversione non sembrano esserci grosse differenze, ma in realtà non è così!
CType cerca sempre di effettuare la conversione (esempio classico: una stringa contenente un numero viene convertita), DirectCast funziona solo se l'argomento sorgente può essere convertito nel tipo di destinazione, sollevando un'eccezione di tipo System.InvalidCastException in caso contrario.
Dim myObject As Object Dim i As Integer Dim j As Integer myObject = Byte.MaxValue 'Equivale a 255 i = CType(myObject, Integer) 'Funziona j = DirectCast(myObject, Integer) 'Non funziona myObject = "255" i = CType(myObject, Integer) 'Funziona j = DirectCast(myObject, Integer) 'Non funziona myObject = 255 i = CType(myObject, Integer) 'Funziona j = DirectCast(myObject, Integer) 'Funziona
Pertanto è necessario utilizzare CType quando si usano come argomenti tipi di valore, dato che DirectCast per funzionare correttamente necessita unicamente di tipi di riferimento.
Viceversa CType risulta essere più lento rispetto a DirectCast, per cui sarebbe consigliabile utilizzare quest'ultimo, per esempio, nel caso in cui si voglia effettuare il cast di un controllo in funzione del suo identificatore e, in generale, quando si esegue la conversione di una variabile di una superclasse (o classe base) in una variabile di una classe derivata.
DirectCast(myContainerControl.FindControl("lblHello"), Label).Text = "Hello World!" 'Meglio usare DirectCast
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Sfruttare le funzionalità degli Azure Cognitive Service on-edge con i container
- Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
- I tutorials, percorsi guidati per tutti
- Introduzione ai Cognitive Services di Microsoft Azure
- Gestire gli eventi dei servizi Azure mediante Event Grid