Partilhar via


Função CType (Visual Basic)

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 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

Gorjeta

Você também pode usar as seguintes funções para executar uma conversão de tipo:

  • Digite funções de conversão, como CByte, CDble CInt que 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 CType ao converter de e para o Object tipo 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.

Palavra-chave 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.

Exemplo

O exemplo a seguir usa a CType função 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.

Consulte também