Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Restituisce il risultato della conversione esplicita di un'espressione in un tipo di dati, un oggetto, una struttura, una classe o un'interfaccia specificati.
Sintassi
CType(expression, typename)
Parti
expression Qualsiasi espressione valida. Se il valore di expression non è compreso nell'intervallo consentito da typename, Visual Basic genera un'eccezione.
typename Qualsiasi espressione valida all'interno di una As clausola in un'istruzione Dim , ovvero il nome di qualsiasi tipo di dati, oggetto, struttura, classe o interfaccia.
Osservazioni:
Suggerimento
È anche possibile usare le funzioni seguenti per eseguire una conversione dei tipi:
- Funzioni di conversione dei tipi,
CBytead esempio ,CDbleCIntche eseguono una conversione in un tipo di dati specifico. Per altre informazioni, vedere Funzioni di conversione dei tipi. -
Operatore DirectCast o Operatore TryCast. Questi operatori richiedono che un tipo erediti o implementi l'altro tipo. Possono offrire prestazioni leggermente migliori rispetto
CTypea quando si esegue la conversione da e verso ilObjecttipo di dati.
CType viene compilato inline, il che significa che il codice di conversione fa parte del codice che valuta l'espressione. In alcuni casi, il codice viene eseguito più velocemente perché non viene chiamata alcuna routine per eseguire la conversione.
Se non viene definita alcuna conversione da expression a typename ( ad esempio da Integer a Date), In Visual Basic viene visualizzato un messaggio di errore in fase di compilazione.
Se una conversione non riesce in fase di esecuzione, viene generata l'eccezione appropriata. Se una conversione di tipo narrowing ha esito negativo, è il risultato più comune.If a narrowing conversion fails, an OverflowException is the most common result. Se la conversione non è definita, viene generata un'eccezione InvalidCastException in . Ad esempio, questo può verificarsi se expression è di tipo Object e il tipo di runtime non ha alcuna conversione in typename.
Se il tipo di dati di expression o typename è una classe o una struttura definita, è possibile definire CType in tale classe o struttura come operatore di conversione. In questo modo funge CType da operatore di overload. In questo caso, è possibile controllare il comportamento delle conversioni da e verso la classe o la struttura, incluse le eccezioni che possono essere generate.
Parole chiave di conversione
Di seguito è riportato un confronto tra le parole chiave di conversione dei tipi.
| Keyword | Tipi di dati | Relazione tra argomenti | Errore di runtime |
|---|---|---|---|
CType |
Qualsiasi tipo di dati | È necessario definire una conversione verso un tipo di dati più esteso o verso un tipo di dati più piccolo | Getta InvalidCastException |
| Operatore DirectCast | Qualsiasi tipo di dati | Un tipo deve ereditare o implementare l'altro tipo | Getta InvalidCastException |
| TryCast | Solo tipi di riferimento | Un tipo deve ereditare o implementare l'altro tipo | Restituisce Nothing |
Sovraccarico
L'operatore CType può anche essere sottoposto a overload su una classe o una struttura definita all'esterno del codice. Se il codice viene convertito in o da una classe o una struttura di questo tipo, assicurarsi di comprendere il comportamento dell'operatore CType . Per altre informazioni, vedere Operator Procedures.
Conversione di oggetti dinamici
Le conversioni dei tipi di oggetti dinamici vengono eseguite da conversioni dinamiche definite dall'utente che usano i TryConvert metodi o BindConvert . Se si usano oggetti dinamici, usare il CTypeDynamic metodo per convertire l'oggetto dinamico.
Example
Nell'esempio seguente viene utilizzato l'operatore CType per convertire un'espressione nel Single tipo di dati .
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Per altri esempi, vedere Conversioni implicite ed esplicite.