Compartir a través de


CType (Función) (Visual Basic)

Devuelve el resultado de convertir explícitamente una expresión en un tipo de datos, un objeto, una estructura, una clase o una interfaz especificado que se haya especificado.

Sintaxis

CType(expression, typename)

Partes

expression Cualquier expresión válida. Si el valor de expression está fuera del rango que typename permite, Visual Basic genera una excepción.

typename Cualquier expresión que se permita dentro de una cláusula As en una instrucción Dim; es decir, el nombre de cualquier tipo de datos, objeto, estructura, clase o interfaz.

Comentarios

Sugerencia

También puede usar las funciones siguientes para realizar una conversión de tipos:

  • Funciones de conversión de tipos como CByte, CDbl y CInt que realizan una conversión en un tipo de datos específico. Para obtener más información, vea Funciones de conversión de tipos.
  • DirectCast Operator o TryCast Operator. Estos operadores requieren que un tipo herede del otro tipo o implemente el otro tipo. Pueden proporcionar un rendimiento algo mejor que CType al convertir en y desde el tipo de datos Object.

CType se compila insertada, lo que significa que el código de conversión forma parte del código que evalúa la expresión. En algunos casos, el código se ejecuta más rápido porque no se llama a ningún procedimiento para realizar la conversión.

Si no se define ninguna conversión de expression a typename (por ejemplo, de Integer a Date), Visual Basic muestra un mensaje de error en tiempo de compilación.

Si se produce un error en una conversión en tiempo de ejecución, se genera la excepción correspondiente. Si se produce un error en una conversión de restricción, OverflowException es el resultado más común. Si la conversión no está definida, se produce una excepción InvalidCastException. Por ejemplo, esto puede ocurrir si expression es de tipo Object y su tipo en tiempo de ejecución no tiene ninguna conversión a typename.

Si el tipo de datos de expression o typename es una clase o estructura que ha definido, puede definir CType en esa clase o estructura como operador de conversión. Esto hace que CType actúe como un operador sobrecargado. Si lo hace, puede controlar el comportamiento de las conversiones hacia y desde la clase o estructura, incluidas las excepciones que se pueden producir.

Palabras clave para conversiones

Una comparación de las palabras clave de conversión de tipos es la siguiente.

Palabra clave Tipos de datos Relación de argumento Error en tiempo de ejecución
CType Todos los tipos de datos La conversión de ampliación o restricción debe definirse entre los dos tipos de datos Genera InvalidCastException
Operador DirectCast Todos los tipos de datos Un tipo debe heredar del otro o implementarlo Genera InvalidCastException
TryCast Solo los tipos de referencia Un tipo debe heredar del otro o implementarlo Devuelve Nothing

Sobrecarga

El operador CType también se puede sobrecargar en una clase o estructura definida fuera del código. Si el código se convierte en o desde dicha clase o estructura, asegúrese de comprender el comportamiento de su operador CType. Para obtener más información, consulta Operator Procedures.

Conversión de objetos dinámicos

Las conversiones de tipos de objetos dinámicos se realizan mediante conversiones dinámicas definidas por el usuario que usan los métodos TryConvert o BindConvert. Si trabaja con objetos dinámicos, use el método CTypeDynamic para convertir el objeto dinámico.

Ejemplo

En el ejemplo siguiente, se usa la función CType para convertir una expresión en el tipo de datos Single.

Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

Para más ejemplos, consulte Conversiones implícitas y explícitas.

Consulte también