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
,CDbl
eCInt
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 oObject
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.