visual texto significa que operador numero convertir cint cdbl cast vb6 casting

texto - VB6 Cast Expression



operador like en visual basic (6)

¿Cuál es la expresión equivalente al CType de VB.NET en Visual Basic 6?


Ctype () Yo creo. El C * (CDate (), CStr (), etc.) son remanentes en su mayor parte.


Digamos que tiene un objeto de ChildClass (niño) que quiere lanzar a BaseClass. Tu hiciste esto:

Dim base As BaseClass Set base = child

Debido a la forma en que VB6 maneja la seguridad del tipo de tiempo de compilación, puede hacerlo sin ninguna sintaxis adicional.

Nota: Dado que todos los demás parecen haber mencionado CType , es posible que haya malinterpretado la pregunta por completo, ¡y me disculpo si ese es el caso!


Hay una cantidad de ellos dependiendo del tipo al que está lanzando

cint() Cast to integer cstr() cast to string clng() cast to long cdbl() cast to double cdate() cast to date

También tiene conversión implícita, así que puedes hacer esto myString = myInt


Parece que algunos carteles han leído mal la pregunta, por lo que trataré de aclarar las cosas reformulando la pregunta y resumiendo las respuestas correctas dadas hasta ahora.

Problema

Quiero transmitir datos de un tipo a otro tipo. En mi código VB.NET usaría CType para hacer esto. Sin embargo, cuando intento usar CType en VB6, aparece el error "Sub o función no definida". Entonces, ¿cómo puedo realizar moldes en VB6 si CType no funciona?

Solución

Como habrás descubierto, VB6 no tiene una función CType como VB.NET. Sin embargo, las otras funciones de conversión (aquellas que tienen nombres que comienzan con C ), que puede haber encontrado en el código VB.NET, como CInt y CStr, existen en VB6, y puede usarlas para convertir ay desde tipos de objetos No hay una función incorporada para convertir un objeto de una clase en un objeto de otra clase. Tenga en cuenta que VB6, a diferencia de VB.NET, no admite la herencia. Una clase en VB6 puede implementar una o más interfaces, pero no puede heredar de otra clase. Sin embargo, si la clase de un objeto implementa más de una interfaz, puede usar la instrucción Set para convertir un objeto a una de las interfaces que admite (como Ant sugirió). A continuación, se proporciona una versión extendida del ejemplo del código de Ant:

Ejemplo: Lanzar una clase a una de sus interfaces compatibles

Dim base As BaseClass Dim child As ChildClass ''implements BaseClass'' Set child = New ChildClass Set base = child ''"Cast" child to BaseClass''


Funciones de conversión de tipo incorporadas en VB6

A continuación se incluye una lista completa de las funciones de conversión incorporadas disponibles en VB6, tomadas directamente del archivo de Ayuda de VB6.

CBool

Devoluciones

Boolean

Descripción

Convierta la expresión a Boolean.

Rango para el argumento de expresión :

Cualquier cadena válida o expresión numérica.

CByte

Devoluciones

Byte

Descripción

Convierte la expresión a Byte.

Rango para el argumento de expresión :

0 a 255

CCur

Devoluciones

Currency

Descripción

Convierte expresión a Moneda.

Rango para el argumento de expresión :

-922,337,203,685,477.5808 a 922,337,203,685,477.5807.

CDate

Devoluciones

Date

Descripción

Convierta expresión a Fecha.

Rango para el argumento de expresión :

Cualquier expresión de fecha válida.

CDbl

Devoluciones

Double

Descripción

Convierta la expresión a Doble.

Rango para el argumento de expresión :

-1.79769313486232E308 a -4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos.

CDec

Devoluciones

Decimal

Descripción

Convierta la expresión a Decimal.

Rango para el argumento de expresión :

+/- 79,228,162,514,264,337,593,543,950,335 para números a escala cero, es decir, números sin decimales. Para números con 28 lugares decimales, el rango es +/- 7.9228162514264337593543950335. El número distinto de cero posible más pequeño es 0.0000000000000000000000000001.

CInt

Devoluciones

Integer

Descripción

Convierte la expresión a Long.

Rango para el argumento de expresión :

-32,768 a 32,767; las fracciones son redondeadas

CLng

Devoluciones

Long

Descripción

Convierte la expresión a Long.

Rango para el argumento de expresión :

-2,147,483,648 a 2,147,483,647; las fracciones son redondeadas

CSng

Devoluciones

Single

Descripción

Convierta la expresión a Single.

Rango para el argumento de expresión :

-3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos.

CStr

Devoluciones

String

Descripción

Convierta la expresión a Cadena.

Rango para el argumento de expresión :

Las devoluciones para CStr dependen del argumento de expresión.

CVar

Devoluciones

Variant

Descripción

Convierte expresión a Variante.

Rango para el argumento de expresión :

El mismo rango que el Doble para numéricos. El mismo rango que String para no numéricos.


Las conversiones no son "moldes" en absoluto. Por ejemplo, intente:

MsgBox CLng(CBool(3&))

El resultado es -1, no 3. Esto se debe a que esas son funciones de conversión , no moldes. ¡El lenguaje es importante!


Los moldes ya mencionados son correctos, pero si el tipo es un Objeto, entonces debes usar "Establecer" en VB6, como por ejemplo:

If IsObject(Value) Then Set myObject = Value '' VB6 does not have CType(Value, MyObjectType) Else myObject = Value '' VB6 does not have CType(Value, MyObjectType) End If

Eso, por supuesto, depende del tipo al que estás enviando. Casi todas las clases de usuarios son objetos, así como Collection, Dictionary y muchos otros. Los tipos incorporados, como long, integer, boolean, etc. obviamente no son objetos.