Funzione CType (Visual Basic)
Restituisce il risultato della conversione esplicita di un'espressione in un tipo di dati, una struttura, una classe, un'interfaccia o un oggetto specificato.
CType(expression, typename)
Parti
expression
Qualsiasi espressione valida. Se il valore di expression non rientra nell'intervallo consentito da typename, viene generata un'eccezione.typename
Qualsiasi espressione valida in una clausola As di un'istruzione Dim, ovvero il nome di qualsiasi tipo di dati, oggetto, struttura, classe o interfaccia.
Note
Suggerimento
È anche possibile utilizzare le funzioni seguenti per eseguire una conversione del tipo:
-
Funzioni di conversione dei tipi come CByte, CDble CInt che eseguono una conversione in un tipo di dati specifico.Per ulteriori informazioni, vedere Funzioni di conversione del tipo (Visual Basic).
-
Operatore DirectCast (Visual Basic) o Operatore TryCast (Visual Basic).Questi operatori richiedono che un tipo erediti da o implementi l'altro tipo.Possono fornire prestazioni migliori rispetto a CType nella conversione da e verso il tipo di dati Object.
La funzione CType viene compilata inline. Il codice di conversione fa quindi parte del codice con cui viene valutata l'espressione. In alcuni casi, il codice viene eseguito più velocemente quanto non viene chiamata alcuna procedura per eseguire la conversione.
Se non è stata definita alcuna conversione da expression in typename, ad esempio da Integer in Date, in Visual Basic viene visualizzato un messaggio di errore in fase di compilazione.
Se un'operazione di conversione ha esito negativo in fase di esecuzione, viene generata l'eccezione appropriata. Se una conversione verso un tipo di dati più piccolo ha esito negativo, il risultato più frequente è rappresentato da un'eccezione OverflowException. Se la conversione non è definita, viene generata un'eccezione InvalidCastException. Ad esempio, questa situazione può verificarsi se expression è di tipo Object e il relativo tipo di runtime non viene convertito in typename.
Se il tipo di dati di expression o di typename è una classe o una struttura specificata, è possibile definire CType su tale classe o struttura come operatore di conversione. In questo modo, la funzione CType funge da operatore di overload In questo caso, è possibile controllare il comportamento delle conversioni da e nella classe o struttura, incluse le eccezioni che possono essere generate.
Overload
È possibile eseguire l'overload dell'operatore CType anche su una classe o una struttura definita all'esterno del codice. Se il codice esegue una conversione da o in una classe o struttura di questo tipo, è importante comprendere il comportamento del relativo operatore CType. Per ulteriori informazioni, vedere Routine di operatore (Visual Basic).
Conversione di oggetti dinamici
Le conversioni di tipi di oggetti dinamici sono eseguite dalle conversioni dinamiche definite dall'utente che utilizzano i metodi BindConvert o TryConvert. Se si utilizzano gli oggetti dinamici, utilizzare il metodo CTypeDynamic per convertire l'oggetto dinamico.
Esempio
Nell'esempio seguente la funzione CType viene utilizzata per convertire un'espressione nel tipo di dati Single.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Per ulteriori esempi, vedere Conversioni implicite ed esplicite (Visual Basic).
Vedere anche
Attività
Procedura: definire un operatore di conversione (Visual Basic)
Riferimenti
Funzioni di conversione del tipo (Visual Basic)
Funzioni di conversione (Visual Basic)