Função CType (Visual Basic)CType Function (Visual Basic)

Retorna o resultado da conversão explícita de uma expressão para um tipo de dados, objeto, estrutura, classe ou interface especificado.Returns the result of explicitly converting an expression to a specified data type, object, structure, class, or interface.

SintaxeSyntax

CType(expression, typename)

PartesParts

expression qualquer expressão válida.expression Any valid expression. Se o valor de expression estiver fora do intervalo permitido pelo typename, Visual Basic lançará uma exceção.If the value of expression is outside the range allowed by typename, Visual Basic throws an exception.

typename qualquer expressão que seja válida em uma cláusula As em uma instrução Dim, ou seja, o nome de qualquer tipo de dados, objeto, estrutura, classe ou interface.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.

ComentáriosRemarks

Dica

Você também pode usar as seguintes funções para executar uma conversão de tipo:You can also use the following functions to perform a type conversion:

  • Funções de conversão de tipo, como CByte, CDble CInt que executam uma conversão para um tipo de dados específico.Type conversion functions such as CByte, CDbl, and CInt that perform a conversion to a specific data type. Para obter mais informações, consulte funções de conversão de tipo.For more information, see Type Conversion Functions.
  • Operador DirectCast ou Operador TryCast.DirectCast Operator or TryCast Operator. Esses operadores exigem que um tipo herde ou implemente o outro tipo.These operators require that one type inherit from or implement the other type. Eles podem fornecer um desempenho um pouco melhor do que CType ao converter de e para o tipo de dados Object.They can provide somewhat better performance than CType when converting to and from the Object data type.

CType é compilado embutido, o que significa que o código de conversão faz parte do código que avalia a expressão.CType is compiled inline, which means that the conversion code is part of the code that evaluates the expression. Em alguns casos, o código é executado mais rapidamente porque nenhum procedimento é chamado para executar a conversão.In some cases, the code runs faster because no procedures are called to perform the conversion.

Se nenhuma conversão for definida de expression para typename (por exemplo, de Integer para Date), Visual Basic exibirá uma mensagem de erro de tempo de compilação.If no conversion is defined from expression to typename (for example, from Integer to Date), Visual Basic displays a compile-time error message.

Se uma conversão falhar em tempo de execução, a exceção apropriada será lançada.If a conversion fails at run time, the appropriate exception is thrown. Se uma conversão de restrição falhar, um OverflowException será o resultado mais comum.If a narrowing conversion fails, an OverflowException is the most common result. Se a conversão for indefinida, uma InvalidCastException em lançada.If the conversion is undefined, an InvalidCastException in thrown. Por exemplo, isso pode acontecer se expression for do tipo Object e seu tipo de tempo de execução não tiver nenhuma conversão para typename.For example, this can happen if expression is of type Object and its run-time type has no conversion to 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.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. Isso faz com que CType atue como um operador sobrecarregado.This makes CType act as an overloaded operator. Se você fizer isso, poderá controlar o comportamento de conversões de e para sua classe ou estrutura, incluindo as exceções que podem ser geradas.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.

SobrecargaOverloading

O operador de CType também pode ser sobrecarregado em uma classe ou estrutura definida fora do seu código.The CType operator can also be overloaded on a class or structure defined outside your code. Se o seu código converter para ou de uma classe ou estrutura desse tipo, certifique-se de entender o comportamento de seu operador de CType.If your code converts to or from such a class or structure, be sure you understand the behavior of its CType operator. Para obter mais informações, consulte procedimentos de operador.For more information, see Operator Procedures.

Convertendo objetos dinâmicosConverting Dynamic Objects

As 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 TryConvert ou BindConvert.Type conversions of dynamic objects are performed by user-defined dynamic conversions that use the TryConvert or BindConvert methods. Se você estiver trabalhando com objetos dinâmicos, use o método CTypeDynamic para converter o objeto dinâmico.If you're working with dynamic objects, use the CTypeDynamic method to convert the dynamic object.

ExemploExample

O exemplo a seguir usa a função CType para converter uma expressão para o tipo de dados 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)

Para obter exemplos adicionais, consulte conversões implícitas e explícitas.For additional examples, see Implicit and Explicit Conversions.

Consulte tambémSee also