Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Retorna o resultado da conversão explícita de uma expressão em um tipo de dados, objeto, estrutura, classe ou interface especificados.
Sintaxe
CType(expression, typename)
Partes
expression Qualquer expressão válida. Se o valor estiver expression fora do intervalo permitido, typenameo Visual Basic gerará uma exceção.
typename Qualquer expressão que seja legal dentro de uma As cláusula em uma Dim instrução, ou seja, o nome de qualquer tipo de dados, objeto, estrutura, classe ou interface.
Observações
Dica
Você também pode usar as seguintes funções para executar uma conversão de tipo:
- Funções de conversão de tipo, como
CByte,CDbleCIntque executam uma conversão em um tipo de dados específico. Para obter mais informações, consulte As funções de conversão de tipo. -
Operador DirectCast ou operador TryCast. Esses operadores exigem que um tipo herda ou implemente o outro tipo. Eles podem fornecer um desempenho um pouco melhor do que
CTypeao converter de e para oObjecttipo de dados.
CType é compilado embutido, o que significa que o código de conversão faz parte do código que avalia a expressão. Em alguns casos, o código é executado mais rapidamente porque nenhum procedimento é chamado para executar a conversão.
Se nenhuma conversão for definida de expression para typename (por exemplo, de Integer para Date), o Visual Basic exibirá uma mensagem de erro em tempo de compilação.
Se uma conversão falhar em tempo de execução, a exceção apropriada será gerada. Se uma conversão de restrição falhar, um OverflowException é o resultado mais comum. Se a conversão for indefinida, uma InvalidCastException entrada gerada. Por exemplo, isso pode acontecer se expression for do tipo Object e seu tipo de tempo de execução não tiver conversão para typename.
Se o tipo de dados de expression ou typename for uma classe ou estrutura que você definiu, você poderá definir CType nessa classe ou estrutura como um operador de conversão. Isso faz com que CType ele atue como um operador sobrecarregado. Se você fizer isso, poderá controlar o comportamento das conversões de e para sua classe ou estrutura, incluindo as exceções que podem ser geradas.
Palavras-chave de conversão
Uma comparação das palavras-chave de conversão de tipo é a seguinte.
| Keyword | Tipos de dados | Relação de argumento | Falha em tempo de execução |
|---|---|---|---|
CType |
Qualquer tipo de dados | A conversão de ampliação ou restrição deve ser definida entre os dois tipos de dados | Lança InvalidCastException |
| Operador DirectCast | Qualquer tipo de dados | Um tipo deve herdar ou implementar o outro tipo | Lança InvalidCastException |
| TryCast | Somente tipos de referência | Um tipo deve herdar ou implementar o outro tipo | Retorna Nada |
Sobrecarga
O CType operador também pode ser sobrecarregado em uma classe ou estrutura definida fora do código. Se o código for convertido para ou de tal classe ou estrutura, certifique-se de entender o comportamento de seu CType operador. Para obter mais informações, consulte Procedimentos de Operador.
Convertendo objetos dinâmicos
Conversões de tipo de objetos dinâmicos são executadas por conversões dinâmicas definidas pelo usuário que usam os métodos ou BindConvert os TryConvert métodos. Se você estiver trabalhando com objetos dinâmicos, use o CTypeDynamic método para converter o objeto dinâmico.
Example
O exemplo a seguir usa o CType operador para converter uma expressão no Single tipo de dados.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Para obter exemplos adicionais, consulte Conversões implícitas e explícitas.