Compartir a través de


Operador CType (Visual Basic)

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

Syntax

CType(expression, typename)

Partes

expression Cualquier expresión válida. Si el valor de expression está fuera del intervalo permitido por typename, Visual Basic produce una excepción.

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

Observaciones

Sugerencia

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

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

CType se compila en línea, 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 (por ejemplo, de Integer a Datetypename ), Visual Basic muestra un mensaje de error en tiempo de compilación.

Si se produce un error en la conversión en tiempo de ejecución, se produce la excepción adecuada. Si se produce un error en una conversión de restricción, OverflowException se trata del resultado más común. Si la conversión no está definida, se produce una InvalidCastException excepción . 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 en CType esa clase o estructura como operador de conversión. Esto hace CType que 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 de conversión

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

Keyword Tipos de datos Relación de argumento Error en tiempo de ejecución
CType Cualquier tipo de datos La conversión de ampliación o restricción debe definirse entre los dos tipos de datos. Lanza InvalidCastException
Operador de DirectCast Cualquier tipo de datos Un tipo debe heredar de o implementar el otro tipo Lanza InvalidCastException
TryCast Solo tipos de referencia Un tipo debe heredar de o implementar el otro tipo Devuelve Nothing

Sobrecarga

El CType operador 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 CType operador. Para obtener más información, vea Procedimientos de operador.

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 TryConvert métodos o BindConvert . Si está trabajando con objetos dinámicos, use el CTypeDynamic método para convertir el objeto dinámico.

Example

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

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

Para obtener ejemplos adicionales, consulte Conversiones implícitas y explícitas.

Consulte también