Compartir a través de


Object como tipo de datos universal

Actualización: noviembre 2007

Object (Tipo de datos) es el tipo de raíz en .NET Framework y en Visual Basic. Esto significa que el resto de tipos de datos y de tipos de objeto se derivan de este tipo, ya sea de forma directa como remota. También significa que cualquier otro tipo de datos, ya sea elemental o compuesto, se puede convertir a Object.

Asignación de tipos dinámica

Puede utilizar Object como el tipo de datos universal. A esto se le llama asignación de tipos dinámica. El siguiente ejemplo ilustra esta flexibilidad.

Dim v As Object
v = "17"
' v contains the 2-character String value "17".
v = v - 15
' v now contains the Integer value 2.
v = "H" & v
' v now contains the 2-character String value "H2".

Aunque puede realizar operaciones en variables Object sin preocuparse excesivamente por el tipo de datos que contienen, debe evitar los siguientes pequeños problemas:

  • Si realiza operaciones aritméticas o funciones en Object, deben contener datos numéricos o se produce un error en tiempo de ejecución.

  • Si va a concatenar cadenas, utilice el operador & en lugar del operador +. Existen reglas complejas que rigen cuando el operador + agrega sus operandos y cuando los concatena. El operador + también debe realizar la comprobación de tipos y la conversión en algunos casos, lo que reduce el rendimiento.

Cambiar el tipo de datos de una variable de objeto

A pesar de que una variable Object puede aceptar datos de cualquier tipo, no puede cambiar la variable a un tipo de datos distinto. Sin embargo, puede volver cambiar las dimensiones de una variable Object a una matriz de variables Object. El ejemplo siguiente ilustra los usos válidos y no válidos de Instrucción ReDim (Visual Basic).

' The following statement declares a single Object.
Dim someObj As Object
' The following reallocation is valid only for Object.
ReDim someObj(8)
' The following statement attempts an INVALID change of data type.
ReDim someObj(8) As Double

La primera instrucción ReDim cambia someObj a una matriz de tipo Object. Esto resulta válido únicamente con el tipo de datos Object. La segunda instrucción ReDim no es válida porque implica un tipo de datos distinto. Puede lograr el efecto deseado utilizando una matriz separada. Esto se ilustra en el siguiente ejemplo:

' First allocate a separate array.
Dim someArray(8) As Double
' Then assign the new array to the Object variable.
someObj = someArray

Object como alternativa a una estructura

Como el tipo de datos Object puede almacenar muchos tipos de datos distintos, puede utilizar una matriz Object en muchas situaciones en las que normalmente utilizaría una estructura. Una matriz Object es algo más flexible que una estructura, ya que puede cambiar el tipo de datos que almacena en cada elemento en cualquier momento, y puede hacer que la matriz sea dinámica, de tal modo que pueda cambiarle el tamaño como sea necesario. Sin embargo, una matriz Object utiliza más memoria que una estructura equivalente y su rendimiento es más lento.

Vea también

Conceptos

Programación sin tipos en Visual Basic

Declaración implícita y explícita

Comprobar tipos en Visual Basic

Uso eficiente de tipos de datos

Declaración de variables de objeto

Asignación de variables de objeto

Valores de las variables de objeto

Referencia

Resumen de tipos de datos (Visual Basic)

Funciones de conversión de tipos

Otros recursos

Conversiones de tipos en Visual Basic