Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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)
Peças
expression Qualquer expressão válida. Se o valor de expression estiver fora do intervalo permitido pelo typename, o Visual Basic lançará 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
Sugestão
Você também pode usar as seguintes funções para executar uma conversão de tipo:
- Digite funções de conversão, como
CByte,CDbleCIntque executam uma conversão para um tipo de dados específico. Para obter mais informações, consulte Funções de conversão de tipo. -
Operador DirectCast ou Operador TryCast. Esses operadores exigem que um tipo herde 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 em linha, 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 rápido porque nenhum procedimento é chamado para executar a conversão.
Se nenhuma conversão for definida de para typename (por exemplo, de Integer para Date), o Visual Basic exibirá uma mensagem de erro em tempo de expression compilação.
Se uma conversão falhar em tempo de execução, a exceção apropriada será lançada. Se uma conversão de estreitamento falhar, um OverflowException é o resultado mais comum. Se a conversão for indefinida, um InvalidCastException in lançou. 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 ou typename for uma classe ou estrutura que você definiu, você poderá definir CType essa classe ou estrutura como um operador de expression conversão. Isso faz com CType que 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 lançadas.
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 alargamento ou estreitamento deve ser definida entre os dois tipos de dados | Lançamentos InvalidCastException |
| Operador DirectCast | Qualquer tipo de dados | Um tipo deve herdar ou implementar o outro tipo | Lançamentos InvalidCastException |
| TryCast | Apenas tipos de referência | Um tipo deve herdar ou implementar o outro tipo | Não devolve nada |
Sobrecarga
O CType operador também pode ser sobrecarregado em uma classe ou estrutura definida fora do seu código. Se o seu 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 do operador.
Convertendo objetos dinâmicos
As conversões de tipo de objetos dinâmicos são realizadas por conversões dinâmicas definidas pelo usuário que usam os TryConvert métodos or BindConvert . 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 para o 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.