Funzione CType (Visual Basic)CType Function (Visual Basic)

Restituisce il risultato della conversione esplicita di un'espressione in un tipo di dati, oggetto, struttura, classe o interfaccia specificati.Returns the result of explicitly converting an expression to a specified data type, object, structure, class, or interface.

SintassiSyntax

CType(expression, typename)

PartiParts

expression qualsiasi espressione valida.expression Any valid expression. Se il valore di expression non è compreso nell'intervallo consentito da typename, Visual Basic genera un'eccezione.If the value of expression is outside the range allowed by typename, Visual Basic throws an exception.

typename qualsiasi espressione valida all'interno di una clausola As in un'istruzione Dim, ovvero il nome di qualsiasi tipo di dati, oggetto, struttura, classe o interfaccia.typename Any expression that is legal within an As clause in a Dim statement, that is, the name of any data type, object, structure, class, or interface.

NoteRemarks

Suggerimento

Per eseguire una conversione del tipo è inoltre possibile utilizzare le funzioni seguenti:You can also use the following functions to perform a type conversion:

  • Funzioni di conversione dei tipi quali CByte, CDbl e CInt che eseguono una conversione in un tipo di dati specifico.Type conversion functions such as CByte, CDbl, and CInt that perform a conversion to a specific data type. Per altre informazioni, vedere funzioni di conversione dei tipi.For more information, see Type Conversion Functions.
  • Operatore DirectCast o operatore TryCast.DirectCast Operator or TryCast Operator. Questi operatori richiedono che un tipo erediti da o implementi l'altro tipo.These operators require that one type inherit from or implement the other type. Possono fornire prestazioni leggermente migliori rispetto a CType quando si esegue la conversione da e verso il tipo di dati Object.They can provide somewhat better performance than CType when converting to and from the Object data type.

CType viene compilato inline, il che significa che il codice di conversione fa parte del codice che valuta l'espressione.CType is compiled inline, which means that the conversion code is part of the code that evaluates the expression. In alcuni casi, il codice viene eseguito più velocemente perché non viene chiamata alcuna routine per eseguire la conversione.In some cases, the code runs faster because no procedures are called to perform the conversion.

Se non viene definita alcuna conversione da expression a typename (ad esempio, da Integer a Date), Visual Basic Visualizza un messaggio di errore in fase di compilazione.If no conversion is defined from expression to typename (for example, from Integer to Date), Visual Basic displays a compile-time error message.

Se una conversione non riesce in fase di esecuzione, viene generata l'eccezione appropriata.If a conversion fails at run time, the appropriate exception is thrown. Se una conversione verso un tipo di ristringimento non riesce, il risultato più comune è @no__t 0.If a narrowing conversion fails, an OverflowException is the most common result. Se la conversione non è definita, viene generata un'eccezione InvalidCastException.If the conversion is undefined, an InvalidCastException in thrown. Questo problema può verificarsi, ad esempio, se expression è di tipo Object e il tipo in fase di esecuzione non dispone di conversione in typename.For example, this can happen if expression is of type Object and its run-time type has no conversion to typename.

Se il tipo di dati di expression o typename è una classe o una struttura definita, è possibile definire CType su tale classe o struttura come operatore di conversione.If the data type of expression or typename is a class or structure you've defined, you can define CType on that class or structure as a conversion operator. Questo fa sì che CType funga da operatore di overload.This makes CType act as an overloaded operator. In tal caso, è possibile controllare il comportamento delle conversioni da e verso la classe o la struttura, incluse le eccezioni che possono essere generate.If you do this, you can control the behavior of conversions to and from your class or structure, including the exceptions that can be thrown.

OverloadOverloading

È inoltre possibile eseguire l'overload dell'operatore CType su una classe o una struttura definita all'esterno del codice.The CType operator can also be overloaded on a class or structure defined outside your code. Se il codice viene convertito in o da tale classe o struttura, assicurarsi di comprendere il comportamento dell'operatore CType.If your code converts to or from such a class or structure, be sure you understand the behavior of its CType operator. Per altre informazioni, vedere Operator Procedures.For more information, see Operator Procedures.

Conversione di oggetti dinamiciConverting Dynamic Objects

Le conversioni di tipi di oggetti dinamici vengono eseguite da conversioni dinamiche definite dall'utente che utilizzano i metodi TryConvert o BindConvert.Type conversions of dynamic objects are performed by user-defined dynamic conversions that use the TryConvert or BindConvert methods. Se si utilizzano oggetti dinamici, utilizzare il metodo CTypeDynamic per convertire l'oggetto dinamico.If you're working with dynamic objects, use the CTypeDynamic method to convert the dynamic object.

EsempioExample

Nell'esempio seguente viene utilizzata la funzione CType per convertire un'espressione nel tipo di dati Single.The following example uses the CType function to convert an expression to the Single data type.

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.For additional examples, see Implicit and Explicit Conversions.

Vedere ancheSee also