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
yCInt
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 datosObject
.
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.